首页 > 其他 > 详细

leetcode -- Binary Tree Maximum Path Sum

时间:2014-10-07 11:40:53      阅读:111      评论:0      收藏:0      [点我收藏+]

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

[问题描述]

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.

[解题思路]

类似于最大连续子序列

 1 class Solution {
 2 public:
 3     int maxPathSum(TreeNode *root) {
 4         max_sum = root->val;
 5         tt(root);
 6         return max_sum;
 7     }
 8     int tt(TreeNode *root){
 9         if (root == NULL)
10             return 0;
11         int sum = root->val;
12         int l = tt(root->left);
13         int r = tt(root->right);
14         sum += max(l, 0);
15         sum += max(r, 0);
16         max_sum = max(max_sum, sum);
17         return max(l, r) > 0?(root->val + max(l, r)):(root->val);
18     }
19 private:
20     int max_sum;
21 };

 

leetcode -- Binary Tree Maximum Path Sum

原文:http://www.cnblogs.com/taizy/p/4009111.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!