题目描述:
输入一个链表,输出该链表中倒数第k个结点。
解答如下:
环境: python 2.7.3
本题可以设置两个指针,firstPoint和secondpoint,让firstPoint先跑k步,那么firstPoint往链表头方向的第k步就是secondPoint,意思就是两指针间距为k,再让两指针同时向后移动,保持距离为k,当firstPoint跑到链表尾部后的None时,它的前第k个节点,也就是secondPoint所指的位置就是该链表的倒数第k个节点。
下图第一个状态时绿色状态,第二个状态是黄色状态。
class Solution:
def FindKthToTail(self, head, k):
# write code here
firstPoint = head
secondPoint = head
if k <= 0:
return None
for i in range(k):
if firstPoint == None:
return None
firstPoint = firstPoint.next
while firstPoint != None:
firstPoint = firstPoint.next
secondPoint = secondPoint.next
return secondPoint