算法--判断链表是否有环
2018-03-04 10:17
232 查看
1.判断链表是否有环
追赶法:设定两个指针slow、fast,均从头指针开始,每次分别前进1步、2步;如果存在环,则两者相遇,如果不存在环,fast遇到null退出
2.计算环的长度
记录下问题1的相遇点,slow、fast从该点出发,再次相遇时,slow所经过的节点数就是环的长度
3.环的入口位置
设问题1中相遇点为m2,p=h,q=m2;h为链表头节点,p,q每次向前一步,p、q相遇的位置即为环的入口
第三点证明过程见:http://blog.csdn.net/u011373710/article/details/54024366
追赶法:设定两个指针slow、fast,均从头指针开始,每次分别前进1步、2步;如果存在环,则两者相遇,如果不存在环,fast遇到null退出
2.计算环的长度
记录下问题1的相遇点,slow、fast从该点出发,再次相遇时,slow所经过的节点数就是环的长度
3.环的入口位置
设问题1中相遇点为m2,p=h,q=m2;h为链表头节点,p,q每次向前一步,p、q相遇的位置即为环的入口
第三点证明过程见:http://blog.csdn.net/u011373710/article/details/54024366
相关文章推荐
- 算法-微软亚院之编程判断俩个链表是否相交
- 每天学习一算法系列(8) (编程判断俩个链表是否相交)
- 经典算法 | 判断任意长度链表是否有环的O(n)时间,O(1)空间算法
- 百度笔试算法第二题:如何判断两个单向链表是否有相交,并找出交点
- 算法:判断一个链表中是否有环
- 笔试算法题(25):复制拥有多个指针的链表 & 判断二元树B是否为A的子树
- 算法-单链表-判断链表是否有环,是否交叉,计算环长,计算入环节点
- 每天一算法(判断两个单向链表是否相交)
- 【算法之链表(二)】判断两个链表是否相交并找出交点
- [算法]判断一个链表是否有环
- 算法习题8:判断俩个链表是否相交
- 算法面试100题——7.微软亚院之编程判断俩个链表是否相交
- 算法题 1 判断两条单链表是否交叉 一百度实习笔试题(2012.5.6)
- 设单链表中存放n个字符,试设计一个算法,使用栈判断该字符串是否中心对称
- 判断带头结点的双向循环链表L是否对称相等的算法
- 【郝斌数据结构自学笔记】25_判断链表是否为空和求链表长度算法的演示
- 笔试算法题(27):判断单向链表是否有环并找出环入口节点 & 判断两棵二元树是否相等
- 头疼的算法与数据机构——判断链表是否有环
- 算法题006 判断两个链表是否相交
- java小算法—判断单链表中是否有环(链表头尾不相连)