因此,关于如何检测链表中的循环有几个问题。Here就是一个例子。我的问题是,为什么所有这些算法都使用两个指针?你就不能用一个指针循环一遍并将节点标记为已访问的节点,当您到达已经访问过的节点或到达链接列表的末尾(next = null)时,您就知道没有循环了吗?
发布于 2016-04-25 14:58:07
这是因为
标记访问的节点
您要么需要节点本身的额外空间来完成,要么需要一个辅助数据结构,它的大小将随着列表的大小而增加,而两个指针解决方案只需要足够的额外空间来多一个指针。
编辑:.也许也是因为双指针解决方案很聪明,而且人们喜欢用聪明的方法解决问题。
https://stackoverflow.com/questions/36844136
复制相似问题