判断链表是否有环
判断链表是否有环,目前有两种主流的方法,一种是设置两个指针,一个步进量是1,另一个步进量是2,如果存在环,则步进量为2的指针一定能追赶上步进为1的指针,即在某一时刻它们的地址相同,代码如下:
bool check(const node* head)
{
if(head==NULL) return false;
node *low=head, *fast=head->next;
while(fast!=NULL && fast->next!=NULL)
{
low=low->next;
fast=fast->next->next;
if(low==fast)
return true;
}
return false;
}