【问题标题】:an algorithm to find if a FORKED list is circular一种算法来判断一个 FORKED 列表是否是循环的
【发布时间】:2021-01-05 21:49:55
【问题描述】:

分叉列表是一种链表,其中存在一个(至少)具有两个“next”的节点,next1 和next2。即,每个节点由 3 个属性组成 - value、next1 和 next2。对于除至少一个以外的每个节点,next2 可能为 None。 我正在寻找一种将分叉列表作为输入的算法,如果列表中有一个圆圈,则返回 True,否则返回 False。 p.s.我们可以假设列表像普通链表一样开始和结束(只有一个 next),并且具有 2 个 'next' 的节点是内部节点之一。

【问题讨论】:

  • 嗨,欢迎来到 SO!为了使您的问题更好,它应该表现出一些努力-到目前为止,您尝试解决此问题的方法是什么?另外,请记住 SO 是一个编程论坛:您是在尝试解决编程问题,还是在为算法课做作业?
  • 我正在尝试寻找一种可能的算法来编写代码。问题是,我不知道如何开始思考这个问题,可能的情况是什么等等。如果需要,我也可以附上 ForkedList 类的 python 代码。

标签: list algorithm linked-list circular-list


【解决方案1】:

将“分叉树”视为有向图并在图中查找电路,例如Johnson's algorithm

【讨论】:

  • 非常感谢这对我帮助很大!
【解决方案2】:

将“分叉树”视为一组依赖项,从一个项目到直接链接的下一个项目。 Topological sort 的项目将因检测到任何循环而失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多