我今天正在研究 Floyd 的周期查找算法并且有疑问。为什么他需要两个指针并以不同的速度移动它们?
他可以创建两个指针,让一个保持静态,并将它的指针与另一个指针进行比较,然后递增?我的意思是即使那样也会导致找到正确的周期?
最佳答案
他们需要移动的原因是循环不一定要循环整个节点列表。
例如,假设我们有 4 个节点 A->B->C->D->B
如果我们让一个指针指向 A,我们将永远检测不到循环。
关于algorithm - Floyd 的循环查找算法 - 需要两个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227551/