环形链表公式推导(快慢指针)

LeetCode 142的关于快慢指针通用情况的公式推导

假设环存在,设为慢指针,每次走一步;为快指针,每次走2步。设2者在环中距离入口处相遇,且出发点与环入口距离为,环长度为,并记,则二者相遇时有:

其中为常数,表示快慢指针走过的圈数。由于快指针是慢指针2倍速度,则有:

带入化解消去得到:

即:

这样意味着慢指针从相遇点出发并经过圈后,与同时从起点出发的另一慢指针在环入口处相遇。