下面是使用 Floyd 的慢速算法发现列表中存在循环后的代码。
我们如何确定 begin 和 tortoise 会在循环的开始处相遇?
Node begin = head;
tortoise = tortoise.next;
while (begin != tortoise) {
begin = begin.next;
if (tortoise.next == begin) { // Find the position of the loop and mark the node as null
tortoise.next = null;
return;
}
tortoise = tortoise.next;
}
任何帮助,将不胜感激!