剑指offer--14. 链表中倒数第k个节点

2018-12-04  本文已影响0人  yui_blacks

题目:
输入一个链表,输出该链表中倒数第k个结点。

思路:
先让两个指针指向头结点
第一个指正走(k-1)步,到达第k个节点,然后两个指针同时往后移动
当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点

public class Solution {
    public ListNode FindKthToTail(ListNode head, int k) {
        ListNode p, q;
        p = q = head;
        int i = 0;
        for (; p != null; i++) {
            if (i >= k)
                q = q.next;
            p = p.next;
        }
        return i < k ? null : q;
    }
}
上一篇下一篇

猜你喜欢

热点阅读