您的位置:首页 > 其它

判断一个单向链表中是否存在环

2014-09-12 15:42 239 查看
#include"list.h"

using namespace std;

bool ListisLoop(listnode* head)

{
listnode* pahead=head;
listnode* pbehind=head;
if(head->next==NULL)
return false;
while(pahead!=NULL&&pbehind!=NULL&&pbehind->next!=NULL&&pahead->next!=NULL)
{
pahead=pahead->next->next;
pbehind=pbehind->next;
if(pahead==pbehind)
return true;
}
return false;

}

int main()

{
list list1;
list1.addtolist(1);
list1.addtolist(2);
list1.addtolist(3);
list1.addtolist(4);
list1.addtolist(5);
list1.addtolist(6);
list1.addtolist(7);
list1.addtolist(8);
list1.addtolist(9);
list1.addtolist(10);
list1.print();
listnode* head=list1.Head();
if(ListisLoop(head))
cout<<"true"<<endl;
else
cout<<"false"<<endl;
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: