牛客网 剑指Offer JZ14 链表中倒数最后k个结点

描述

输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。

示例1

输入:
{1,2,3,4,5},1 
返回值:
{5}
 

比如链表有10个数,

要倒数第4个数,

这时候创建两个指针,

一个从前往后数4个数,另一个不动,这就确定了两个指针的距离。

两个指针同时向后移,右侧指针到边为止。

左侧就是答案。

class Solution:
    def FindKthToTail(self, pHead, k):
        if k <= 0 or not pHead:
            return None
        # 快慢指针
        slow = fast = pHead
        while k > 1:
            fast = fast.next
            if not fast:
                return None
            k -= 1
        while fast.next:
            slow = slow.next
            fast = fast.next
        return slow
原文地址:https://www.cnblogs.com/upstart/p/15085488.html