【发布时间】:2017-11-24 21:20:28
【问题描述】:
考虑以下链表:
1->2->3->4->5->6->7->8->9->4->...->9->4.....
上面的列表有一个循环如下:
[4->5->6->7->8->9->4]
在白板上画链表,我尝试手动求解不同的指针步骤,看看指针如何移动 -
(slow_pointer_increment, fast_pointer_increment)
所以,针对不同情况的指针如下:
(1,2), (2,3), (1,3)
前两对增量 - (1,2) 和 (2,3) 工作正常,但是当我使用 (1,3) 对时,算法似乎不适用于这对。有没有规定我们需要增加多少步数才能使该算法成立?
虽然我为较慢和较快的指针搜索了各种增量步骤,但到目前为止,我还没有找到一个相关的答案来说明为什么它不适用于此列表中的增量 (1,3)。
【问题讨论】:
标签: algorithm linked-list floyd-cycle-finding cycle-detection