您的位置:首页 > 其它

LeetCode_124 Binary Tree Maximum Path Sum

2015-07-30 11:33 471 查看
Given a binary tree, find the maximum path sum.

The path may start and end at any node in the tree.

For example:

Given the below binary tree,

1
/ \
2   3


Return 6.

如果这个作为root,那么最长路应该就是F(left) + F(right) + val.当然如果left,或者right<0就不用加了

int max = Integer.MIN_VALUE;
public int maxPathSum(TreeNode root) {
if(root == null)
return 0;
maxSum(root);
return max;
}
private int maxSum(TreeNode root){
if(root == null) return 0;

int value = root.val;
int lmax = 0;
int rmax = 0;
if(root.left !=null){
lmax = maxSum(root.left);
if(lmax > 0){
value +=lmax;
}
}
if(root.right != null){
rmax = maxSum(root.right);
if(rmax > 0){
value +=rmax;
}
}

if(value > max){
max = value;
}
return Math.max(root.val, Math.max(root.val+lmax, root.val+rmax));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: