美文网首页
找链表的环入口问题

找链表的环入口问题

作者: 舒小贱 | 来源:发表于2017-09-24 17:18 被阅读0次

题目:已知一个链表有环,求环的入口

链表有环,所以让一个快指针,一个慢指针,同时从起点出发,他们必定在环中相遇。而且相遇的时候,慢指针必定只走了环的不到一圈。(为什么可以自己想。其实可以反推,如果相遇点是慢指针第二次走过的时候,那么第一次走过环中此点和第二次走过环中此点期间,快指针肯定走过不止一圈,所以应该在其他的地方早就相遇了,所以假设不成立。)

假设一个慢指针以速度v从起点开始走,一个快指针以速度2v从起点开始走,在环中某个点相遇。

设起点到环入口的距离为x,环入口到相遇点的距离为y,环的长度为L,那么:
vt = x+y
2vt=x+y+nL
得到x+y = nL
即x = nL-y,发现了没有
相遇点在距离环入口y,那么走nL-y就又走到了环入口。
还没有思路吗。。。

慢指针和快指针相遇后,慢指针以速度v再从起点出发,快指针降速,也以速度v,不过是从相遇点出发,
当慢指针走过x的距离的时候,快指针走过了nL-y(因为他们速度一样,且有关系式x = nL-y),此时看快指针到哪了?
快指针从距离环入口y的地方出发,走过了nL-y,你说快指针到了哪???当然是又回到了环入口了啊。。。。

慢指针从起点走过了x,说明慢指针也走到了环的入口了啊。。。。

说明什么???还在蒙圈中吗。。。

说明他们相遇了啊,而且相遇的地方,恰好就是环的入口啊。。。

估计还在懵逼中。。。

相关文章

  • 链表

    单向链表 链表反转 判断是否有环,找链表的中间节点 快慢指针 找环的入口(求两个链表的交点可以转化成这个问题) p...

  • 找链表的环入口问题

    题目:已知一个链表有环,求环的入口 链表有环,所以让一个快指针,一个慢指针,同时从起点出发,他们必定在环中相遇。而...

  • 数据结构与算法整理

    (1)链表的技巧 快慢指针(找环,环入口,环长度) 双指针(倒数K个节点) 合并链表(递归求解) 约瑟夫环(环形链...

  • 有环单链表的相关问题

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

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

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

  • 环链表找入口原理证明

    一 目的 定理推论证明 二 定理推论证明 上述变量名称解释 开始证明 假设快慢指针相遇时,快指针在环内走了m圈,慢...

  • 链表

    合并排序链表 链表排序 链表中环的入口结点 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出nul...

  • 面试题23(剑指offer)--链表中环的入口节点

    题目: 给一个链表,若其中包含环,请找出该链表的环的入口结点。 思路: �链表中环的入口节点 先确定有环,用快慢指...

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

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

  • 剑指offer.C++.code56-60

    56. 链表中环的入口结点 一个链表中包含环,请找出该链表的环的入口结点。 57. 删除链表中重复的结点【基于递归...

网友评论

      本文标题:找链表的环入口问题

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