您的位置:首页 > 其它

Binary Tree Maximum Path Sum

2013-09-02 06:41 218 查看
public int maxPathSum(TreeNode root) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList<Integer> result = new ArrayList<Integer>(1);
result.add(Integer.MIN_VALUE);
maxPathSum(root, result);
return result.get(0);
}

public int maxPathSum(TreeNode root, ArrayList<Integer> result) {
if(root == null) return 0;
int left = maxPathSum(root.left, result);
int right = maxPathSum(root.right, result);
int max = root.val;
if(left > 0) max += left;
if(right > 0) max += right;
if(result.get(0) < max) result.set(0, max);
return Math.max(root.val, Math.max(left, right) + root.val);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: