思想:(1)快慢指针,先让快指针追上慢指针
(2)令快指针指向表头,慢指针的指向不变,两个指针同时开始走
(3)两个指针相遇时,所指节点即为环的入口
Node*FindEntry(Plinklist*pplist)
{
assert(pplist);
Node*fast
= *pplist;
Node*slow
= *pplist;
while(fast&&fast->next
) //让快指针追上慢指针
{
fast = fast->next->next;
slow = slow->next;
if(fast
== slow)
{
break;
}
}
fast = *pplist;
while(fast
!= slow)
{
fast = fast->next;
slow = slow->next;
}
returnfast;
}