Node * isLoop(Node *head){
if (head==NULL||head->nxt==head)
{
return head;
}
Node *p=head;
Node *q=head;
while (p!=NULL&&p->nxt!=NULL)
{
p=p->nxt->nxt;
q=q->nxt;
if (p==q)
{
return q;
}
}
return NULL;
}
两个速度不同的指针一起移动,如果有环,则一定相交。类似操场跑步,快的同学转一圈下来会与慢的同学碰面。