题解 | #链表中倒数最后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
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务