链表中倒数第K个结点

class Solution:
    def FindKthToTail(self, head, k):
        # write code here
        if not head or k <= 0:
            return None
        #设置两个指针,p2指针先走(k-1)步,然后再一起走,当p2为最后一个时,p1就为倒数第k个 数
        p2=head
        p1=head
        #p2先走,走k-1步,如果k大于链表长度则返回 空,否则的话继续走
        while k > 1:
            if p2.next:
                p2 = p2.next
                k -= 1
            else:
                return None
        #两个指针一起 走,一直到p2为最后一个,p1即为所求
        while p2.next:
            p1 = p1.next
            p2 = p2.next
        return p1

你可能感兴趣的:(链表中倒数第K个结点)