首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

检测单链表里有没有环线

2013-04-20 
检测单链表里有没有环路bool hasLoop(Node *head) {Node *slow head, *fast headwhile (slow && fast

检测单链表里有没有环路


bool hasLoop(Node *head) {
  Node *slow = head, *fast = head;
  while (slow && fast && fast->next) {
    slow = slow->next;
    fast = fast->next->next;
    if (slow == fast)
      return true;
  }
  return false;
}

我的疑问是,这个算法怎么能够一定正确,难道不会发生fast跳过slow指针吗? 单链表 算法 指针
[解决办法]
这个不能检测环路吧
[解决办法]
引用:
这个不能检测环路吧

孤陋寡闻了,这个是追赶法,就像两个人在跑步,速度不一样,如果跑的是圈,就一定会再次相遇
[解决办法]
引用:
引用:这个不能检测环路吧
孤陋寡闻了,这个是追赶法,就像两个人在跑步,速度不一样,如果跑的是圈,就一定会再次相遇


而且他们的速度差为1,是不可能跳过的
[解决办法]
古老的问题, 看我当年的说明和代码
http://blog.csdn.net/happy__888/article/details/558356 

热点排行