黑马程序员技术交流社区
标题:
数据结构小智力题,求解!!
[打印本页]
作者:
范二青年
时间:
2013-12-10 22:07
标题:
数据结构小智力题,求解!!
本帖最后由 范二青年 于 2013-12-10 22:12 编辑
今天看到一个关于链表的数据结构题,就是说一个怎样快速判断一个单向链表中是否存在环?
作者:
一个人旅行
时间:
2013-12-10 22:09
设置两个指针,初始值都指向头,一个快一个慢,看是否相遇
作者:
范二青年
时间:
2013-12-10 22:14
一个人旅行 发表于 2013-12-10 22:09
设置两个指针,初始值都指向头,一个快一个慢,看是否相遇
哦,谢谢,明白了!
作者:
范二青年
时间:
2013-12-10 22:14
一个人旅行 发表于 2013-12-10 22:09
设置两个指针,初始值都指向头,一个快一个慢,看是否相遇
哦,谢谢,明白了!
作者:
王尧
时间:
2013-12-10 22:21
/* 链表的头指针为h */
if((NULL == h) || (NULL == h->next))
/* 头指针为空或者链表中只有一个节点,则无环,退出 */
{
return 0;
}
p = q = h; /* 设p和 q 指针, 均指向头结点 */
while(1)
{
p = p->next;
q = (q->next)->next;
if((NULL == p) || (NULL == q))
{
printf(“No Ringn”); /* 链表中无环, 退出 */
return 0;
}
if(p == q) /* 链表中有环 */
{
printf(“Ring occurred\n”);
return 1;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2