一、题目
输入一个链表,输出该链表中倒数第k个结点。
class Solution:
def FindKthToTail(self, head, k):
# write code here
# 特殊情况
# if not head or k <= 0:
if head is None or k <= 0:
return
cursor_a = head
cursor_b = head
for i in range(k-1):#只是用于循环遍历k-1次
# 注意:这里要考虑k可能大于链表长度的情况
if cursor_a.next != None:
cursor_a = cursor_a.next
else:
return
while cursor_a.next != None:
cursor_a = cursor_a.next
cursor_b = cursor_b.next
return cursor_b
思路:
1、用两个指针a和b同时指向头节点
2、指针a先到k-1节点,指针b不动
3、此时指针a和b同时移动,指针a走到尾节点终止,此时指针b所在位置即倒数第k个节点