检查链表是否为循环

时间:2013-07-25 14:41:05

标签: data-structures linked-list

我只是阅读关于乌龟和野兔(慢速和快速跑步)算法here,但我真的不明白为什么它被认为是最好的解决方案。

这样做不会耗费时间:

  • 保存根节点

  • 浏览链表

  • 在每个新节点上,检查它是否是根节点。

1 个答案:

答案 0 :(得分:0)

刚刚意识到循环列表并不一定需要连接到它的头部。它可以在中间某处有一个循环。这使得2"跑步者"必要的。

但是,如果你明确检查一条蛇吃自己的尾巴"那种链表,那么只需检查指针与根节点的相等性就足够了,就像我之前建议的那样