我有一棵二叉树。我需要编写Java递归方法,它将在两个节点之间提供最长的路径。
例如,如果跟随树为7(7-8-5-13-15-18-16-17),则为最长路径。
http://img294.imageshack.us/img294/130/treeb.jpg
解决此问题的方法是什么?
(方法:public static int longestPath(Node n))
答案 0 :(得分:1)
考虑到这是家庭作业,我会看Depth-First search和Breadth-First search。
优先考虑深度优先
答案 1 :(得分:1)
首先,您可以编写一个返回树高度的函数,该函数等于最长路径的长度。
答案 2 :(得分:0)
这是一条线索:
首先,你能解决这个更简单的问题吗?
从整数列表中找出最大值。
其次,只要节点有子节点,就会出现新路径。
答案 3 :(得分:0)
另请注意,problem是NP完全的,因此可能将无法找到多项式算法。