您的位置:首页 > 编程语言 > C语言/C++

c++编程题练习——检测单链表是否有环,若有,输出环入口

2017-10-13 20:03 211 查看
此题目是编程之美3.11扩展问题:简单并带有错误的环形单链表检测代码

看了相关资料后解题思路记录如下:

p1=p2=head;

while(p2!=NULL && p2->next!=NULL)

{

   p1=p1->next;

   p2=p2->next->next;

   if(p1==p2)

       break;

}

if(p2==NULL || p2->next==NULL)

{

    cout<<"无环"<<endl;  ////

    return ;

}

else  ///说明跳出while循环的原因是p1=p2,则说明存在环

{

    cout<<"有环"<<endl;

    p2=head;

    while(p1!=p2)

    {

        p2=p2->next;

        p1=p1->next;

    }

    return p1;

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