22-链表中倒数第k个节点

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

def find_Kth_tail(head,k):
    if not head or k<1:
        return None
    
    p = head
    q = head
    cnt = 0
    while p:
        cnt+=1
        p=p.next
    if k>cnt:
        return None
    p = head
    for i in range(k):
        p = p.next

    while p:
        p = p.next
        q = q.next

    return q.data

注:

使用两个指针,一个指针先走k步,然后两个指针同时走,当前一个指针到达链表尾部的时候,后一个指针指向的就是倒数第k个节点。本题要注意输入数据的判读,头节点是否为空,k是否大于0以及k是否小于链表总长度。

猜你喜欢

转载自www.cnblogs.com/kingshine007/p/11354271.html