Java:倘若一个链表有环,如何找到环的入口
来源:互联网 发布:刘备对诸葛亮说知我者 编辑:程序博客网 时间:2024/05/01 03:02
如果单链表有环,按照判断是否有环的思路,当快指针和慢指针相遇时,slow指针肯定没有遍历完链表,而fast指针已经在环内循环了n圈。假设slow指针走了s步,则fast指针走了2*s步,设环长为r,则:
2*s=s+n*r;
s=n*r;
设链表头到环入口距离为l,入口处距离相遇点距离为a,则:
s=l+a+mr;
得:l=(n-m)r - a
可见,相遇后,如果在链表头和相遇点各设置一个指针,每次走一步,两指针必定相遇,且在相遇第一个点为环入口。
public class findloopport {public Node method(Node head) {Node slow=head,fast=head;while(fast!=null&&fast.next!=null) {slow=slow.next;fast=fast.next.next;if(fast==slow) {break;}}if(fast==null||fast.next==null) {return null;}slow=head;while(slow!=fast) {slow=slow.next;fast=fast.next;}return fast;}}
阅读全文
0 0
- Java:倘若一个链表有环,如何找到环的入口
- 【链表】若单链表存在环,如何找到环的入口点。
- 万事开头难,如何找到程序的入口?
- 找到链表中环的入口节点 java
- 如何判断一个链表是否有环? 2、如果链表为存在环,如果找到环的入口点?
- 19、判断一个单链表是否有环?找到环的入口点。判断两个单链表是否相交,找到相交点。
- 数据结构 - 如何找到有环单链表的环的入口位置(C++)
- 如何找到Tomcat启动时的入口文件
- 如何找到带环链表的入口节点?
- 单链表是否有环并如何找到环入口
- 单链表是否有环并如何找到环入口
- 单链表是否有环并如何找到环入口
- 单链表是否有环并如何找到环入口
- [剑指offer]找到链表环的入口节点java
- 如何做一个应用程序的快捷方式入口
- 找到eclipse的入口了
- 判断单链表中是否有环,找到环的入口节点
- 判断单链表中是否有环,找到环的入口节点
- weblogic配置JDBC数据源(mysql)
- Java:如何检测一个链表是否有环。
- Selenium+phantomJS+Python 操作cookie实现自动登录(以音悦台为例)
- Gnome自定义菜单简明教程
- A. The Artful Expedient
- Java:倘若一个链表有环,如何找到环的入口
- 【dp】leetcode 276. Paint Fence
- 手机重置后的杯具
- ios-理论知识2
- PCB布线FORTRAN程序例子3
- 文件上传upload
- 10-5&&10-6NOIP模拟赛总结
- jq其他属性操作及jq事件机制
- 单链表逆置的图解