剣はオファー22を指します。リンクリストの下からk番目のノード-ダブルポインター/再帰

22.リンクリストの下からk番目のノード

ダブルポインタ

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
        ListNode i=head;
        ListNode j=head;
        int t=k-1;
        while(t>0){
            j=j.next;
            --t;
        }
        while(j.next!=null){
            j=j.next;
            i=i.next;
        }
        return i; 
    }
}

再帰

class Solution {
    int size;
    public ListNode getKthFromEnd(ListNode head, int k) {
        if(head==null) return head;
        ListNode node=getKthFromEnd(head.next,k);
        size++;
        if(size<k)
            return null;
        else if(size==k)
            return head;
        else
            return node;
    }
}

 

おすすめ

転載: blog.csdn.net/qq_41041762/article/details/108061319