判断一个单链表是否存在环
2013-09-28 12:14
155 查看
定义两个快慢指针,同时从头结点出发,慢指针一次走一步,快指针一次走两步。如果快指针赶上了慢指针,则说明有环,如果快指针碰到NULL,则说明无环。道理类似于两个人在环形跑道跑步,快者速度是慢者的两倍,慢的人跑完一圈,回到起点,快的人应该正好跑完两圈,回到起点。
bool IsExitsLoop(slist *head) { slist *slow = head, *fast = head; while ( fast && fast->next ) { slow = slow->next; fast = fast->next->next; if ( slow == fast ) break; } return !(fast == NULL || fast->next == NULL); }
相关文章推荐
- 写一个函数判断单链表是否存在环,要求时间复杂度为O(n)
- 判断一个单链表是否存在环
- 微软面试(or电面)试题——如何判断一个单链表是否存在回路
- 写一个函数,判断单链表是否存在环,要求时间复杂度为O(n)
- 如何判断一个单链表中是否存在环
- 判断一个单链表中是否存在环
- 判断一个单链表中是否存在环
- 判断一个单链表是否存在环
- 判断单链表是否存在环以及两个链表是否相交
- indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 判断一个单链表是否为回文
- 判断一个单链表是否有环及环的链接点
- 用并查集判断一个无向图中是否存在环
- php中判断mysql数据库中某一个数据库是否存在
- 算法7— 判断一个单链表是否有环,如果有,找出环的起始位置
- 在python中判断一个键是否存在于字典中的方法
- 判断单链表中是否存在环及查找环的入口点
- Android 判断当前手机中是否存在某一个action可以启动。
- 如何判断一个文件或目录是否存在