【问题标题】:Follow up on detecting loop in linked list跟进检测链表中的循环
【发布时间】:2016-08-19 01:18:21
【问题描述】:

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

【问题讨论】:

    标签: algorithm linked-list


    【解决方案1】:

    这是因为

    将节点标记为已访问

    您需要节点本身的额外空间来执行此操作,或者需要一个辅助数据结构,其大小会随着列表的大小而增加,而双指针解决方案只需要足够的额外空间来容纳一个指针。

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

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多