我知道为了在链表中找到一个循环,我可以定义两个对链表的引用并以不同的速度移动它们。一个向前移动 1 个节点,另一个向前移动 2 个节点。
因此,如果链表有一个循环,它们肯定会相遇,否则两个引用中的任何一个(或它们的下一个)都将变为空。
我的问题是:为什么另一个引用应该在 2 个节点中移动,为什么它不能被任何其他偶数/奇数移动,解决方案的正确性是否依赖于此?
提前致谢。
我知道为了在链表中找到一个循环,我可以定义两个对链表的引用并以不同的速度移动它们。一个向前移动 1 个节点,另一个向前移动 2 个节点。
因此,如果链表有一个循环,它们肯定会相遇,否则两个引用中的任何一个(或它们的下一个)都将变为空。
我的问题是:为什么另一个引用应该在 2 个节点中移动,为什么它不能被任何其他偶数/奇数移动,解决方案的正确性是否依赖于此?
提前致谢。