直接拿路程列等式怪怪的,应该加入时间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

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
牛客网
牛客企业服务