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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 题目:Given a linked list, return the node where the cycle b...