22. 链表中倒数第k个节点

image.png

思路一:

得到长度,再正着走到len-k的地方。

  • 注意:
    res=3~1,就是3个节点了所以条件是res!=1而不是res!=0

image.png

思路二:双指针之首尾指针

两指针i,j间隔k,j到null了,i就是倒数第k个
image.png

  • 注意:
    k是倒数第几,比如倒数第1,两个指针也要差1,所以条件是k!=0,而不是k!=1
            ListNode i = head;
            ListNode j = head;
            while(k!= 0){
                i = i.next;
                k--;
            }
            while(i!=null){
                i = i.next;
                j = j.next;
            }
            return j;

MeeWoW
18 声望1 粉丝

加油