跟进链表中的检测循环

时间:2016-04-25 14:55:32

标签: algorithm linked-list

因此,如何检测链表中的循环有几个问题。 Here就是一个例子。我的问题是,为什么所有这些算法都使用两个指针?难道你不能只用一个指针循环并将节点标记为已访问,当你到达一个已经访问过的节点或到达链表的末尾(next = null)时,你知道没有循环?

1 个答案:

答案 0 :(得分:2)

这是因为

  

将节点标记为已访问

你需要在节点本身中有额外的空间来做它,或者一个辅助数据结构,其大小会随着列表的大小而增加,而双指针解决方案只需要一个额外的空间来容纳一个指针。

[编辑添加:] ......也许,也许是因为双指针解决方案聪明,人们喜欢聪明的解决方案。