判断一个单向链表中是否有环
2012-11-03 19:49
225 查看
写一段代码判断一个单向链表中是否有环
思路: 用两个指针,pSlow,pFast,就是一个慢一个快 慢的一次跳一步, 快的一次跳两步, 什么时候快的追上慢的了就表示有环(pSlow == pFast )。
实现如下:
struct listtype{int data;struct listtype * next;}list;int find_cicle(list *head){list *pFast=head;list *pSlow=head;if (pFast==NULL){return -1;}while(pFast && pFast->next){pFast=pFast->next->next;pSlow=pSlow->next;if (pFast==pSlow){return 1;}}return 0}调用函数返回值为1时,表示单向链表有环;调用函数返回值为-1时,表示测试的单向链表为空;[/code]
调用函数返回值为0时,表示单向链表无环;
相关文章推荐
- 剑指offer面试题15——扩展2:判断一个单向链表是否形成环结构
- 状下算法可以判断一个单向链表中是否有环
- 判断一个单向链表是否有环
- 判断一个单向链表中是否有环
- 判断一个单向链表中是否存在环
- 判断一个单向链表是否有环
- 判断一个单向链表中是否有环
- Linked List Cycle-- 判断一个单向链表中是否有环存在
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表
- 判断一个单向链表中是否有环
- 判断一个单向链表中是否存在环
- 如何判断一个单向链表是否存在循环的经典方法
- 判断一个单向链表中是否有环
- 如何判断一个单向链表是否有环路
- 剑指-判断一个单向链表是否形成了环形结构
- 判断一个单向链表是否形成了环状结构
- 如何判断一个单向链表是否为回文链表(Palindrome Linked List)
- 判断一个单向链表是否有环,算法证明
- 判断一个单向链表上是否有环
- 判断一个单向链表是否有环和判断一个单向链表是否是循环链表