我正在努力解决以下问题:“给定一个二叉树,其中每个节点元素都包含一个数字。到另一个。 最大总和路径可能会或可能不会经过根。“我想写这里讨论的O(n)解决方案:http://www.geeksforgeeks.org/find-maximum-path-sum-two-leaves-binary-tree/但我有一个问题,因为Java是通过值传递的。有人可以帮忙吗?查找二叉树(Java)的两个树叶之间的最大路径总和
编辑:这是我的方法
private static int fromRoot(TreeNode root, int[] res){
if(root == null)
return 0;
int left = fromRoot(root.left, res) + root.val;
int right = fromRoot(root.right, res) + root.val;
int max = Math.max(Math.max(left, right), left+right+root.val);
if(max > res[0])
res[0] = max;
return Math.max(left, right);
}
的int变量res
我保存输出。这段代码的作用是给出树中所有节点的总和。
Waitaminute。为什么Java正在通过价值传递一个问题? – Makoto 2014-10-03 16:25:56
@ user2040251我更新了说明 – sammy333 2014-10-03 17:22:47