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);
}
Binary Tree Maximum Path Sum
最新推荐文章于 2024-03-25 21:39:45 发布
