【问题标题】:Find the longest path between any two nodes找到任意两个节点之间的最长路径
【发布时间】:2011-03-08 14:20:13
【问题描述】:

我有一棵二叉树。我需要编写 Java 递归方法来提供两个节点之间的最长路径。

例如最长路径,如果跟随树是 7 (7-8-5-13-15-18-16-17)。

http://img294.imageshack.us/img294/130/treeb.jpg

解决这个问题的方法是什么?

(方法:public static intlongestPath(Node n))

【问题讨论】:

  • 请发布您目前编写的任何代码,我们将提供帮助。但是,我(一个人)不会给你一个解决方案。它会破坏你作业的目的......让你学会为自己编写程序。
  • 您可以在这里找到更多帮助:stackoverflow.com/questions/1664390/…

标签: java recursion binary-tree


【解决方案1】:

考虑到这是作业,我会查看Depth-First searchBreadth-First search

偏好深度优先

【讨论】:

  • 太棒了!虽然一开始很难弄清楚!
【解决方案2】:

这里有一个线索:

首先,你能解决这个更简单的问题吗?

从整数列表中找出最大值。

其次,只要节点有子节点,就会出现一条新路径。

【讨论】:

    【解决方案3】:

    另请注意,problem 是 NP 完全的,因此您可能无法找到多项式算法。

    【讨论】:

    • 不。阅读文章:对于无环图,它是 P。树是无环的。这是一个评论,充其量。
    【解决方案4】:

    首先,您可以编写一个返回树高度的函数,该高度等于最长路径的长度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2011-03-08
      相关资源
      最近更新 更多