美文网首页
2019-06-17 leetCode 找到链表中的环入口节点

2019-06-17 leetCode 找到链表中的环入口节点

作者: 北子萌 | 来源:发表于2019-06-17 14:23 被阅读0次

链接:https://www.nowcoder.com/questionTerminal/6e630519bf86480296d0f1c868d425ad

来源:牛客网

1)同linked-list-cycle-i一题,使用快慢指针方法,判定是否存在环,并记录两指针相遇位置(Z);

  2)将两指针分别放在链表头(X)和相遇位置(Z),并改为相同速度推进,则两指针在环开始位置相遇(Y)。

  证明如下:

  如下图所示,X,Y,Z分别为链表起始位置,环开始位置和两指针相遇位置,则根据快指针速度为慢指针速度的两倍,可以得出:

  2*(a + b) = a + b + n * (b + c);即

  a=(n - 1) * b + n * c = (n - 1)(b + c) +c;

  注意到b+c恰好为环的长度,故可以推出,如将此时两指针分别放在起始位置和相遇位置,并以相同速度前进,当一个指针走完距离a时,另一个指针恰好走出

  绕环n-1圈加上c的距离。

  故两指针会在环开始位置相遇。

图示如下:

相关文章

  • 面试题24-找到链表中环的入口

    题目要求 找到链表中的环的入口节点 题目解析 思路一: 分析 要得到链表中的环的入口节点,那么我们首先需要确定链表...

  • 2019-06-17 leetCode 找到链表中的环入口节点

    链接:https://www.nowcoder.com/questionTerminal/6e630519bf86...

  • 剑指offer - 链表中环的入口节点

    题目 如果一个链表中包含环,如何找出环的入口节点?例如:在下图所示的链表中,环的入口节点是节点3 分析 1、如何确...

  • 《剑指Offer》-23.链表中环的入口节点

    题干 如果一个链表中包含环,如何找出环的入口节点?例如,在如图所示的链表中,环的入口节点是节点3。 解题思路 第一...

  • 31. 链表中环的入口

    题目:链表中有环,找到环的入口 链表题目技巧总结:快慢指针、先走几步打时间差、确定某个节点(公共节点、尾节点)、利...

  • 面试题20:链表中环的入口节点

    题目:如果一个链表中包含环,如何找到环的入口节点思路:分为判断是不是有环,找环的入口 快慢指针,如果快指针能够追上...

  • LeetCode 142. Linked List Cycle

    @(LeetCode) 问题描述 给定一个链表,返回环入口节点。如果不存在环,则返回 null。 为了表示带环链表...

  • 编程案例自我总结(二)

    16.链表环的入口:如果一个连表中包含环,求出环的入口节点(回归链表的地方)。 思路:1.确认环是否存在 ...

  • 链表中环的入口节点

    题目描述 一个链表中包含环,请找出该链表的环的入口结点。 解法一: 要想知道环的入口节点,则必须至少经过该节点两次...

  • 有环单链表的相关问题

    问题:判断单链表是否有环;若有环,找出环的入口节点;若有环,求出环上节点的个数;若有环,求出整个链表的节点的个数;...

网友评论

      本文标题:2019-06-17 leetCode 找到链表中的环入口节点

      本文链接:https://www.haomeiwen.com/subject/qtsafctx.html