题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
快慢指针
快指针先移到慢指针的前k个节点,然后快慢指针同时移动,当快指针到达链尾,慢指针即为倒数第k个节点。
# 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:
# write code here
low,fast = pHead,pHead
# 快指针先前移k个节点
for i in range(k):
if fast == None: return None
fast = fast.next
# 快慢指针同时移动,快指针到达末尾,慢指针即为倒数k个节点
while fast:
low = low.next
fast = fast.next
return low
查看15道真题和解析