如何判断单链表里面是否有环
来源:互联网 发布:手机系统分身软件 编辑:程序博客网 时间:2024/05/18 06:28
定义两个指针p、q,然后让p、q同时从链表头向后查找,注意他们移动的步幅是不同的分别为a
、b,例如p指针每次执行一次【p = p->next;】q每次执行两次【q = q->next;】,如果q先到链尾【if(q->next == NULL)】则没有死循环(这里假设q比p的移动速度要快),如果p、q在此之前相遇了则有死环。
实现的函数如下:
bool CircleInList(Link* pHead) { if(pHead == NULL || pHead-> next == NULL)//无节点或只有一个节点并且无自环 { return (false); } if(pHead-> next == pHead)//自环 { return (true); } Link *pTemp1 = pHead;//step 1 Link *pTemp = pHead-> next;//step 2 while(pTemp != pTemp1 && pTemp != NULL && pTemp-> next != NULL) { pTemp1 = pTemp1-> next; pTemp = pTemp-> next-> next; } if(pTemp == pTemp1) { return (true); } return (false); }
- 如何判断单链表里面是否有环?
- 如何判断单链表里面是否有环【转载】
- 如何判断单链表里面是否有环【转载】
- 如何判断单链表里面是否有环
- 如何判断单链表里面是否有环
- 如何判断单链表里面是否有环?
- 如何判断单链表里面是否有环
- 如何判断单链表里面是否有环?
- 如何判断单链表里面是否有环?
- 【编程之美】如何判断单链表里面是否有环?
- 判断链表里面是否有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- 判断单链表里面有没有环
- Oracle DBA常用SQL汇总
- Linux常用命令汇总
- 萧萧雨落情未绝,瑟瑟风起愁又涌
- 将水电气的抄表动作自动化
- 拥有特权 使用system账户
- 如何判断单链表里面是否有环
- 90後总有一些人:关于90后的那些点点滴滴
- 《冰河世纪4:大陆漂移》观后感
- 软件质量管理
- J2SE中带缓冲的字符流与装饰设计模式
- J2SE中 装饰设计模式之用自定义类去实现BufferedReader类的功能
- 几度苍凉的伤感独特日志发布:想要逃,却怎么也逃不掉
- J2SE中 用不同形式的流完成对文件的拷贝
- 字符编码笔记:ASCII,Unicode和UTF-8