题目:输入一个链表,输出该链表中倒数第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是否小于链表总长度。