判断一个链表是否有循环
// 判断一个链表是否 有循环/*bool hasLoop(node* p)
{
}
*/
struct node
{
int value;
node* next;
};
bool hasLoop(node* p) //步长法
{
node* temp = p;
if(!temp->next)
return false;
node* temp2 = temp->next;
if(!temp2->next)
return false;
return true;
}
void main()
{
node* p=new node[100];
for(int i=0;i<100;i++)
{
p[i].value=i+1;
p[i].next = p+i+1;
p[i-1].next=p+1; // 值 或 NULL
}
if(hasLoop(p))
cout<<"Loop"<<endl;
else
cout<<"Not Loop"<<endl;
}