码迷,mamicode.com
首页 > 其他好文 > 详细

Binary Tree Maximum Path Sum

时间:2016-04-19 22:57:17      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:

从底向上

返回值是当前连续的最大值

m是当前所有的最大值

 

class Solution {
public:
    int m=INT_MIN;
    int maxPath(TreeNode* root)
    {
     if(root==NULL)
        return 0;
        int value=0,lmax=0,rmax=0;
        value=root->val;
        if(root->left)
        {
            lmax=maxPath(root->left);
            if(lmax>0)
            value+=lmax;
        }
        if(root->right)
        {
            rmax=maxPath(root->right);
            if(rmax>0)
            value+=rmax;
        }
        if(value>m)m=value;
        return max(lmax,rmax)>0?max(lmax,rmax)+root->val:root->val;
        }
    int maxPathSum(TreeNode* root) {
        if(root==NULL) 
        return 0;
        maxPath(root);
        return m;
        
    }
};

 

Binary Tree Maximum Path Sum

标签:

原文地址:http://www.cnblogs.com/daocaorenblog/p/5410496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!