|
发表于 2006-11-28 16:41:32
|
显示全部楼层
Post by 小锁
其实“有圆”和“是圆”是不同的。
我也贴一个有圆的算法:
[php]
int has_circle(struct list *head)
{
struct list *ptr1, *ptr2;
ptr1 = head;
if (ptr1 == NULL)
return 0;
ptr2 = ptr1->next;
while (1) {
if (ptr2 == NULL)
return 0;
if (ptr2 == ptr1)
return 1;
ptr2 = ptr2->next;
if (ptr2 == NULL)
return 0;
if (ptr2 == ptr1)
return 1;
ptr2 = ptr2->next;
ptr1 = ptr1->next;
}
return 0;
}
[/php]
ptr2遍历表的速度是ptr1的两倍? |
|