这道题需要注意的就是边界情况
1、链表为空 --返回空
2、k值小于等于0 ---返回空
3、链表长度小于k值 ---返回空
4、正常情况,链表长度大于k值 ---快慢指针
class Solution:
def FindKthToTail(self , pHead , k):
if k<=0 or not pHead: # 边界1、2
return None
dummy = ListNode(-1)
dummy.next = pHead
pre = dummy
cur = dummy.next
while k:
if not cur: # 边界3. k值还未递减到0,已经到达了链表末尾,则链表长度小于k,返回None
return None
cur = cur.next # 边界4,正常情况,快慢指针
k -= 1
while cur: # 正常情况,快慢指针
pre = pre.next
cur = cur.next
return pre.next



京公网安备 11010502036488号