题目:输入一个链表,输出该链表中倒数第k个结点
方法:两个指针
为了实现只遍历链表一次就能找到倒数第k个节点,我们定义两个指针fast,slow。让fast先向走k-1步,slow保持不动;从第k步开始,slow也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当fast到达链表的尾节点时,slow刚好到达倒数第k个节点。
class Solution:
def FindKthToTail(self, head, k):
if head == None or k <= 0:
return None
fast = head
slow = head
for i in range(k-1):
if fast.next == None:
return None
fast = fast.next
while fast.next != None:
fast = fast.next
slow = slow.next
return slow