【发布时间】:2012-01-04 12:47:12
【问题描述】:
在链表中检测循环的最佳方法是:
- 使用 Floyd 的循环查找算法并在链表中识别循环中的位置。
- 统计链表中循环的大小
- 将一个指针定位在列表的开头,另一个“k”(其中 k 是循环的大小)定位。
- 在迭代过程中,它们在循环开始时相遇。
我想知道为什么会这样。这背后的一些理论逻辑?
【问题讨论】:
-
也许您在描述中混用了“循环”和“链表”?
-
通常,“循环”是指迭代的构造,而您似乎关心链表中的“循环”。让你知道。
-
是的。我的意思是循环。感谢澄清
-
这似乎很明显 - 如果不清楚,也许可以画一个图表?
-
我知道它有效。我只是不清楚它是如何到达的
标签: algorithm linked-list floyd-cycle-finding