如何判断一个单链表中是否存在环
2013-09-01 09:30
513 查看
如何判断一个单链表是有环的?(注意不能用标志位,最多只能用两个额外指针)
struct node { char val; node* next;}
bool check(const node* head) {} //return false : 无环;true: 有环一种O(n)的
办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必
然重合,反之亦然):
bool check(const node* head)
{
if(head==NULL || head->next == NULL)
return false;
if(head->next == head)//存在自环
return true;
node *low=head, *fast=head;
while(fast!=NULL && fast->next!=NULL)
{
low=low->next;
fast=fast->next->next;
if(low==fast)
return true;
}
return false;
}
struct node { char val; node* next;}
bool check(const node* head) {} //return false : 无环;true: 有环一种O(n)的
办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必
然重合,反之亦然):
bool check(const node* head)
{
if(head==NULL || head->next == NULL)
return false;
if(head->next == head)//存在自环
return true;
node *low=head, *fast=head;
while(fast!=NULL && fast->next!=NULL)
{
low=low->next;
fast=fast->next->next;
if(low==fast)
return true;
}
return false;
}
相关文章推荐
- 微软面试(or电面)试题——如何判断一个单链表是否存在回路
- 如何判断一个图中是否存在回路
- 用 C# 如何判断数据库中是否存在一个值
- 【转载】如何判断单链表是否存在环
- 如何判断单链表是否存在环
- makefile中如何判断一个文件是否存在
- 笔试题:如何判断单链表是否存在环
- 如何判断数据库中是否存在一个数据表
- C#中如何判断一个文件是否存在
- windows10UWP:如何判断一个文件或者文件夹是否存在?
- 数据库中如何判断一个为INT的列是否存在断号,并且找出所断的号的数值
- 如何判断一个链表是否有环? 2、如果链表为存在环,如果找到环的入口点?
- jquery和js如何判断一个对象是否存在
- Sql : 如何判断一个表中,是否存在一个ID,如果存在不处理,如果不存在
- javascript中如何判断一个元素在页面中是否存在(转)
- SQL Server中如何判断一个数据库是否存在
- 如何js中判断一个对象是否存在
- 如何判断一个图中是否存在回路
- ORACEL如何判断一个表中某列是否存在
- jquery和js如何判断一个对象是否存在