124. Binary Tree Maximum Path Sum
1
/ \
2 3/**
* 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 {
int answer;
public:
int maxPathSum(TreeNode* root) {
answer = INT_MIN;
maxPathSumDown(root);
return answer;
}
int maxPathSumDown(TreeNode * cur){
if(!cur) return 0;
int left = max(0, maxPathSumDown(cur->left));
int right = max(0, maxPathSumDown(cur->right));
answer = max(answer, left + right + cur ->val);
return max(left, right) + cur->val;
}
};Last updated
Was this helpful?