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

  • A: 设置两个指针指向头节点,第一个指针向前走k-1步,走到第k个结点,此时,第二个指针和第一个指针同时移动,当第一个指针到尾节点的时候,第二个指针指向倒数第k个结点,注意链表为空,k为0,k大于链表的长度的情况.
class Solution:
    def FindKthToTail(self, head, k):
        if head is None or k <= 0:  # 记得考虑k<=0时情况不成立
            return None
        a = head
        for i in range(k - 1):
            if a.next is not None:
                a = a.next
            else:
                return None
        b = head
        while a.next is not None:
            a = a.next
            b = b.next
        return b