快慢指针方法判断链表是否存在环为什么是选择2作为快指针的步长

  1. 假设慢指针为walker快指针为runner,那么当慢指针到达环入口的时候设两个指针之间的距离为S,环的长度设为R,
    那么当两者相遇的时候就要满足S+(k-1)t=nR
    快慢指针方法判断链表是否存在环为什么是选择2作为快指针的步长
  • 通过上式可以看到当k,R 取不同的的值的时候上式的 t , n 的取值可能会变化
  • 当时当我们取2的时候由于s<R则一定会在慢的指针走一圈之内两者相遇
  • 同样我们根据具体的问题将条件带入上式中就可以判断k取值3,4,5,6。。。等的时候是否可以,但是2一定是可以的

参考链接:https://blog.****.net/sinat_35261315/article/details/79205157

寻找环的入口点的方法:https://blog.****.net/liushall/article/details/80444753