找到任意两个节点之间的最长路径

时间:2010-06-26 10:00:15

标签: java recursion binary-tree

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

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

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

解决此问题的方法是什么?

(方法:public static int longestPath(Node n))

4 个答案:

答案 0 :(得分:1)

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

优先考虑深度优先

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这是一条线索:

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

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

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

答案 3 :(得分:0)

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