链表有循环链接
其实就是发现链表里面有环
<-------------------
->p0->p1->p2->
设置两个指针s0 ,s1
s0每次移动一步,s1每次移动两步,如果有环的则总会在链表的某一个节点相遇。否则就是没有循环链接。
typedef struct LinkNode
{
int data;
LinkNode *next;
}node;
void findx(node *head)
{
node *s0,*s1;
s0 = head;
s1=head;
while((s0 != NULL) &&(s1 != NULL))
{
s0 = s0->next;
s1 = s1->next->next;
if(s0 == s1)
{
printf("有循环链接");
}
}
if((s1 == NULL) || (s0 == NULL))
{
printf("没有循环链接");
}
}