LeetCode #124 Binary Tree Maximum Path Sum

来源:互联网 发布:mac u盘查杀软件 编辑:程序博客网 时间:2024/05/17 02:24

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.

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int maxPathSum(TreeNode* root) {        if(root == NULL) return 0;        int res = root->val;        getMax(root, res);        return res;    }    int getMax(TreeNode *root, int &res){        if(root == NULL) return 0;        int left = getMax(root->left,res);        int right = getMax(root->right, res);        res = max(res, left + right + root->val);        return max(0, max(left, right) + root->val);    }};

0 0
原创粉丝点击