判断一个链表是否有环引发出的思考
来源:互联网 发布:马来西亚翻译中文软件 编辑:程序博客网 时间:2024/06/13 00:13
看到一个面试题:检测一个单向链表是否有环。
知道答案是,用两个指针,一个指针每次走一步,一个指针一次走两步。如果没有环,则走得快的指针先到达尾部,也就是为null。如果有环,那么这两个指针一定会在环内相遇。
当时想不通为什么会有这样的结论。没有换好理解,有环为什么一定回相遇呢?
然后上搜索,看到大神举的一个例子,恍然大悟。原来就是这么简单。
假设两个指针都进入了环内,且还未相遇。假设指针p1每次走一步,指针p2每次走两步。且假设此时p2还有与p1相隔n步。因为p2每次走两步,p1每次走一步,所以每次p2都向p1靠近一步,所以经过n此之后,他们必定相遇。其实只要每次走得快的那个比走得慢的那个都是快1步,不论他们每次走的是几步,只要保证速度相差一就一定会相遇。
0 0
- 判断一个链表是否有环引发出的思考
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环
- 判断一个链表是否有环的方法
- 判断一个链表是否有环,如果有环返回环开始的结点指针
- 如何判断一个链表是否有环,如果有环,并找出环的入口
- 判断一个单向链表是否有环路的算法
- 判断一个链表是否有循环
- 怎样判断一个链表是否有环
- 判断一个单向链表是否有环
- [算法]判断一个链表是否有环
- 判断一个单向链表是否有环
- 如何判断一个链表是否有环?
- MySQL下载安装、配置与使用(win7x64)
- 【JZOJ 4680】 自然数
- OpenGL学习笔记一:概念和术语解释
- poj 2002 Squares
- OJ--------最小公倍数+求解立方根
- 判断一个链表是否有环引发出的思考
- 大数据系列修炼-Scala课程12
- 0 1 背包 poj 3624
- Java虚拟机类加载机制(转)
- JavaScript事件处理
- 【POJ】2346 - Lucky tickets(数位dp)
- Solrj创建doc/pdf/txt文件索引,高亮查询
- 第21课:scala文件和xml操作实战及spark源码鉴赏
- CentOS7:常用命令-笔记