链表 环

1 链表是否有环
先使用快慢指针确定是否有环
2 链表环交点
L代表环之前的长度
x代表环入口点与相遇处的长度
R代表环的长度
R-x代表环剩下的长度
可以得到推导式:
(L+x)2 = L+x+nR
左边式子表示慢指针在与快指针相遇是还未走完一圈,所以快指针走过的长度是慢指针的两倍
右边式子表示快指针做过的长度是n圈在加上L+x
那么可以得到:
L=nR-x=(n-1)R+(R-x)
也就是说从起始点到交点的距离等于从相遇点开始按照1速度移动,移动n-1圈后再走R-x长度接能和起始点开始的指针相遇,而x+R-x正好是环的入口点。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 判断链表有没有环有环链表一般我们采取快慢指针来判断链表是否有环。思路主要是:定义两个指针。fast和slow;fa...
    丨ouo丨阅读 1,062评论 0 0
  • 1.约瑟夫环问题 示例代码: 2. 链表节点 解法一:空间O(1) 空间O(M*N) 实现代码: 解法二: 解法三...
    少冰三hun甜阅读 843评论 1 0
  • 题目:Given a linked list, return the node where the cycle b...
    yui_blacks阅读 418评论 0 0
  • 为公众号写了几次推送,突然很累很累,也突然的迷茫了,我为什么写作,我写作的初心是什么。记得语文老师说过,我们写作总...
    差生胖嘟嘟阅读 202评论 0 0
  • 最近几年,不是在面试,就是在去面试的路上。虽然自己没啥过人之处,但是就是莫名自信,总感觉自己异于常人,是天选之人。...
    Eunice小锦阅读 160评论 0 1

友情链接更多精彩内容