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

三次方

关注

阅读 45

2021-09-21

题目描述:
示例:
思路:

初始化两个指针before,after指向链表头节点,before先走k个节点,然后再让before,after同时前进,当before走到链表末尾时,after所在位置就是倒数第k个节点。


代码实现:
class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
        ListNode before = head, after = head;
        while (k-- > 0) { // before先前进k个节点
            before = before.next;
        }
        while (before != null) { // before,after指针同时前进,直到before走出链表边界
            before = before.next;
            after = after.next;
        }
        return after; 
    }
}

精彩评论(0)

0 0 举报