Binary Tree Maximum Path Sum

来源:互联网 发布:工行大数据应用案例 编辑:程序博客网 时间:2024/04/29 08:12
/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {    void DFS(TreeNode *root,int &tsum,int &maxsum){                        if(root==NULL){            tsum=0;            return;        }                int lsum=0,rsum=0;        DFS(root->left,lsum,maxsum);        DFS(root->right,rsum,maxsum);        tsum=max(root->val,max(lsum+root->val,rsum+root->val));        maxsum=max(maxsum,max(tsum,lsum+rsum+root->val));                    }public:    int maxPathSum(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int maxsum=INT_MIN,tsum;        DFS(root,tsum,maxsum);        return maxsum;            }};

原创粉丝点击