--java-- 对于树
5 4 3 30 5
我需要找到“最大轨道” 所以对于这棵树来说,它是 39 (5+4+30)
我需要一个函数来做到这一点(复杂度 O(n)) 有人可以帮助我吗?
public static int GetTreePath(BinTreeNode<Integer> t){
if (t==null)
return 0;
if (t.IsLeve()){
return t.getInfo();
}else{
GetTreePath(t.getLeft());
GetTreePath(t.getRight());
}
return t.getInfo();
}
最佳答案
只需稍微修改一下代码即可获得两个可能的子树的最大值。
public static int GetTreePath(BinTreeNode<Integer> t){
if (t==null)
return 0;
if (t.IsLeve()){
return t.getInfo();
}else{
return Math.max(
GetTreePath(t.getLeft()),
GetTreePath(t.getRight())
) + t.getInfo();
}
}
关于java - 最大轨道二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671545/