链表中环的入口结点

    xiaoxiao2022-07-02  115

    给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

    思路:

    设两个指针:

    两个指针速度不同往前走,若相等有环,跳出循环;

    其中一个指针回到原点,两指针同样速度往前走,再次相遇时,回到原点的那个指针指向的位置就是环入口。

    def EntryNodeOfLoop(self, pHead): # write code here if pHead=='' and pHead.next=='': return None p1=pHead p2=pHead while(p2 and p2.next): p1=p1.next p2=p2.next.next if p1==p2: break if not p2 or not p2.next: return None p2=pHead while p2!=p1: p2=p2.next p1=p1.next return p2

     

    最新回复(0)