检测链表中的循环

时间:2012-09-07 05:30:32

标签: list linked-list

我在相关部分看到了这个问题,经过一些讨论后,我发现最常见的解决方案是野兔和乌龟算法。但是我看到的另一个建议的解决方案(这就是我要做的)是包含一个Node类的第三个实例变量,它将跟踪它访问过的节点,比如一个布尔变量。这被认为是有效的解决方案吗?

1 个答案:

答案 0 :(得分:0)

你的解决方案绝对是一个有效的解决方案,因为它可以完成任务。

然而,检测循环的问题通常是使用O(1)额外内存的附加约束来制定的。野兔和乌龟算法满足此约束,而您的算法不满足:它需要O(N)额外的内存来存储每个节点的布尔值。