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

相关推荐

劝退式:感觉有人回才是不正常的
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务