直接拿路程列等式怪怪的,应该加入时间t和速度v。t时间内慢指针走过的路程为A+B,快指针走过的路程为A+B+n(B+C),由快指针是慢指针速度的两倍关系得2(A+B)/t=(A+B+n(B+C))/t,则2(A+B)=A+B+n(B+C),即A=n(B+C)-B。由外层while先找到快慢指针首次相遇点p点,即将slow定位到p点,新增内层while的慢指针slow2从头节点出发,同时slow也从p点开始转圈,slow2走完A路程时,因为A=n(B+C)-B,所以slow走过n(B+C)-B即n圈减掉再减掉B长度,因此slow和slow2相遇点为入口点q
1

相关推荐

点赞 评论 收藏
分享
07-23 14:04
东北大学 C++
既然这样,为什么不点击就送呢
牛马88号:因为你合适。但有很多笔试就挂了、通过了再排序的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务