一个链表中包含环,请找出该链表的环的入口结点。
2018-01-15 21:50
330 查看
图画的不错~~
第一次相遇时slow走过的距离:a+b,fast走过的距离:a+b+c+b
fast走的距离是slow的2倍,2(a+b) = a+b+c+b,可以得到a=c(这个结论很重要!)
我们发现还的长度L=b+c=a+b,也就是说,从一开始到二者第一次相遇,循环的次数就等于环的长度
思路:
X:链表头结点,Y:还入口结点,Z:第一次相遇结点第一次相遇时slow走过的距离:a+b,fast走过的距离:a+b+c+b
fast走的距离是slow的2倍,2(a+b) = a+b+c+b,可以得到a=c(这个结论很重要!)
我们发现还的长度L=b+c=a+b,也就是说,从一开始到二者第一次相遇,循环的次数就等于环的长度
相关文章推荐
- 一个链表中包含环,请找出该链表的环的入口结点
- 一个链表中包含环,请找出该链表的环的入口结点。
- 一个链表中包含环,请找出该链表的环的入口结点
- 一个链表中包含环,请找出该链表的环的入口结点。
- 一个链表中包含环,请找出该链表的环的入口结点。
- 一个链表中包含环,请找出该链表的环的入口结点。
- 给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部
- 首先如何判断一个链表是否有环,并找出环的入口
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- 构造一个链表,经过一次循环找出中间的结点
- java面试题(剑指Offer):找出该链表的环的入口结点
- 给定一个链表,链表的每一个节点包含三个属性:1、节点值;2、指向下一个结点的引用;3、随机指向链表内任意一个节点的引用,也能不指向任何节点。复制该链表
- 判断一个链表有没有环,找出链表里面环的第一个入口点
- 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
- 9.2链表(五)——给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部
- 判断一个链表是否有环,并找出环的入口
- 将一个稀疏矩阵从一个二维数组转变成只包含非零结点的多链表
- 链式A+B有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListN
- 如何判断一个链表是否有环,如果有环,并找出环的入口
- 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。