2016-04-25 70 views
0

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

回答

2

这是因为

纪念节点所访问

你需要在节点或者额外的空间,自己做,或辅助数据结构,它的大小将与的增加列表,而双指针解决方案只需要足够的额外空间来存放一个指针。

[编辑补充:] ...也许,也是因为双指针解决方案是巧妙的和人们喜欢巧妙的解决方案。