判断链表有环问题
来源:互联网 发布:linux ftp绑定域名 编辑:程序博客网 时间:2024/06/15 18:22
经典的面试问题:
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。
问题:
1、如何判断一个链表是不是这类链表?
2、如果链表为存在环,如果找到环的入口点?
Solution1:
用一个hash表(c++中可以用set)保存遍历过的指针,每前进一步查看是不是hash表中存在,如果存在,证明有环,并且第一个存在的就是环的入口地址。
Solution2:
快指针,慢指针方案。定义两个指针,一个快指针,每次走一步,慢指针,每两次走一步,这样如果有环,两者肯定能相遇,否则,快指针会走到尾部。(这种方案判断入口点比较麻烦)
Solution3:
反转链表方案。每走一步,将指针反转指向前面的节点,这样如果有环的话,最终会走到头指针,否则会走到尾部(判断是否NULL)。最后还要将原链表反转回来。
0 0
- 判断链表有环问题
- 判断链表有环及其扩展问题
- form提交判断问题!
- 判断全/半角问题
- 判断全/半角问题
- 判断单链表环的问题
- 判断单链表环问题
- 判断单链表环的问题
- 大小端判断问题
- java判断标点符号问题
- [php] in_array 判断问题
- s标签判断问题
- 回文判断问题
- 性格判断问题
- 判断是不是闰年问题
- php 手机号判断问题
- 判断带环单链表问题
- 判断大小端问题
- Struts1与Struts2的区别
- andorid 电话 拨号
- httpCLIENT的GET
- 2013年终总结
- 妇产课本上学不到的
- 判断链表有环问题
- HTTP协议详解
- SQL Server内存数据写入磁盘的方法比较
- Business Objects 基础
- 快速排序——java实现
- spring依赖注入的3种实现方式
- Visual Studio原生开发的10个调试技巧
- 理解SQL SERVER中的分区表
- devexpress gridview 保存、加载布局