struct list{
int data;
struct list *next;
};
int has_circle(struct list *head)
{
struct list *cur1 = head;
int pos1 = 0;
while(cur1)
{
struct list *cur2 = head;
int pos2 = 0;
pos1 ++;
while(cur2)
{
pos2 ++;
if(cur2 == cur1)
{
if(pos1 == pos2)
break;
else
return 1; //has circle
}
cur2 = cur2->next;
}
cur1 = cur1->next;
}
return 0;
}
int data;
struct list *next;
};
int has_circle(struct list *head)
{
struct list *cur1 = head;
int pos1 = 0;
while(cur1)
{
struct list *cur2 = head;
int pos2 = 0;
pos1 ++;
while(cur2)
{
pos2 ++;
if(cur2 == cur1)
{
if(pos1 == pos2)
break;
else
return 1; //has circle
}
cur2 = cur2->next;
}
cur1 = cur1->next;
}
return 0;
}