您的位置:首页 > 其它

leetcode -- Binary Tree Maximum Path Sum

2014-10-07 11:18 260 查看

过去只是人生经历,并不是人生负担

[问题描述]

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
.

[解题思路]

类似于最大连续子序列

class Solution {
public:
int maxPathSum(TreeNode *root) {
max_sum = root->val;
tt(root);
return max_sum;
}
int tt(TreeNode *root){
if (root == NULL)
return 0;
int sum = root->val;
int l = tt(root->left);
int r = tt(root->right);
sum += max(l, 0);
sum += max(r, 0);
max_sum = max(max_sum, sum);
return max(l, r) > 0?(root->val + max(l, r)):(root->val);
}
private:
int max_sum;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: