设置快慢指针。参考题解区Maokt
第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针同时移动,当第一个指针到链表的末尾的时候,返回第二个指针即可
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pHead ListNode类
# @param k int整型
# @return ListNode类
#
class Solution:
def FindKthToTail(self , pHead: ListNode, k: int) -> ListNode:
a=pHead
b=pHead
for i in range(k):#a指针先移动k步
if a==None:#如果k步内a指针已经是None了,那最终结果肯定是返回None
return None
else:
a=a.next
while a!=None:
a=a.next
b=b.next
return b