有环链表找环入口 【链表】若单链表存在环,如何找到环的入口点?
【链表】若单链表存在环,如何找到环的入口点?更简单的证明方法是考虑从第一个节点开始向下的顺序。当单链表中的节点数不超过n时,它要么在有限步中结束,要么在有限步中存在重复节点。因为单链表中的下一个节点是
【链表】若单链表存在环,如何找到环的入口点?
更简单的证明方法是考虑从第一个节点开始向下的顺序。当单链表中的节点数不超过n时,它要么在有限步中结束,要么在有限步中存在重复节点。因为单链表中的下一个节点是唯一的,所以序列有一个固定的周期。当单链表不循环时,快指针和慢指针显然不会相遇,只考虑循环。
让序列为a[n],从a[i]开始,对于任何M>=i,有一个[M T]=a[M],其中T>=1。我们只需要证明k的存在性,使得a[2K]=a[k]。取任意u,使ut>=I,k=ut,然后a[2ut]=a[ut]=a[ut(u-1)t]=。。。=a[ut],即a[2K]=a[k]。证明了这一命题