我试图在 .NET 中的 C++ 上找到这个算法,但找不到,我找到了这个:
// Best solution
function boolean hasLoop(Node startNode){
Node slowNode = Node fastNode1 = Node fastNode2 = startNode;
while (slowNode && fastNode1 = fastNode2.next() && fastNode2 = fastNode1.next()){
if (slowNode == fastNode1 || slowNode == fastNode2) return true;
slowNode = slowNode.next();
}
return false;
}
但似乎不对,还是我错了?我怎样才能真正证明我的兔子最终会遇到乌龟?提前感谢任何解释它是如何工作的proof
已编辑
关于这个解决方案,我发现在常规算法中他们只使用一个快速迭代器,但在这里他们使用两个,为什么?