我给个通用解法吧。题目给的解法我实在没看懂,但自己推一下还是很简单的 设:链表的非环部分长为 m,有环部分长为 n,二者在环中相遇的位置距环入口为 x,相遇时快指针已经转了 f 圈。则:相遇时,慢指针走了 m + x 步(易证慢指针在环内不会走超过一圈,故 x <= n),快指针走了 m + fn + x 步,即 2m + 2x = m + fn + x 化简得 m = fn - x。此时把快指针置到原处,快指针再走 m 步到达环的入口,此时慢指针也会再走 m 步,而他之前距离环的起点 x 步,即在环内总共走了 m + n = fn - x + x = fn。所以一定会在环的入口相遇
点赞

相关推荐

不愿透露姓名的神秘牛友
07-18 12:01
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 12:20
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务