快慢指针方法判断链表是否存在环为什么是选择2作为快指针的步长
- 假设慢指针为walker快指针为runner,那么当慢指针到达环入口的时候设两个指针之间的距离为S,环的长度设为R,
那么当两者相遇的时候就要满足S+(k-1)t=nR
- 通过上式可以看到当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