我刚刚在这里读到关于乌龟和兔子(慢速和快速跑者)算法的文章,但我真的不明白为什么它被认为是最好的解决方案。
这样做不是更耗时吗:
-
保存根节点
-
通过链接列表
-
在每个新节点上,检查它是否是根节点。
刚刚意识到循环列表不一定需要连接回其头部。它可以在在中间的某个地方有一个循环。这就需要两个"跑步者"。
但是,如果您显式检查"蛇吃自己的尾巴"类型的链表,那么只检查指针与根节点的相等性就足够了,就像我在之前建议的那样