1. 程式人生 > >編寫程式,判斷連結串列中是否有環?

編寫程式,判斷連結串列中是否有環?

使用兩個指標來遍歷單向連結串列,第一個指標P1,每次走一步。第二個指標P2每次走兩步;當P2指標追上P1的時候就說明連結串列中有環路了。

int testLinkRing(Link *head)
{
    Link *t1=head;
    Link *t2=head;
    while(t1->next&&t2->next)
    {
        t1=t1->next;
        if(t2->next->next==NULL)
            return 0;//無環
        if(t1==t2)
            return 1;//有環
    }
}