【问题标题】:When do someone need to check for a linked list cycle ?什么时候需要检查链表循环?
【发布时间】:2014-10-30 07:40:05
【问题描述】:

最近我接受了一个 Java 软件开发人员的面试,面试官问了我一些在我看来很愚蠢的问题。其中之一是如果您有链表,如何查找链表中是否存在循环。现在我的问题不是如何检查循环,而是我需要一个真实的例子,什么时候会产生这个问题,什么时候需要检查开发 Java Web 应用程序的列表?!

【问题讨论】:

  • 我在我的一个项目中使用了旋转缓冲区。该缓冲区存储在一个数组中,并使用精美的光标跟踪进行旋转,但它也可以作为循环缓冲区实现。
  • 查看这个问题,它似乎与您所问的相似,并且答案中有示例。 stackoverflow.com/questions/494830/…
  • cycle 是什么意思?
  • 这些问题很少适用于现实生活中的情况,而是为了测试你的分析思维能力和逻辑。

标签: java data-structures


【解决方案1】:

链表是最简单和最常见的数据结构之一。它们可用于实现其他几种常见的抽象数据类型,包括列表(抽象数据类型)、堆栈、队列、关联数组和 S 表达式,尽管不使用列表直接实现其他数据结构并不少见作为实施的基础。{wikipedia}

带有循环的格式错误的链表会导致列表上的无限迭代失败,因为迭代永远不会到达列表的末尾。因此,希望能够在尝试迭代之前检测到链表格式错误。因此,在链表中查找循环将有助于避免错误,这是计算机科学的一个基本问题。你应该知道。

【讨论】:

  • 这仍然是书上的谈话,理论。给我一个作为开发人员的真实例子,你必须检查某个链表是否有循环:)
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2010-12-29
  • 2017-07-13
  • 2012-08-21
相关资源
最近更新 更多