您的位置:首页 > 其它

在链表里如何发现循环链接?

2012-08-01 20:54 323 查看
链表有循环链接

其实就是发现链表里面有环

<-------------------

->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("没有循环链接");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: