/**
* 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) {
int res = INT_MIN;
DFS(root,res);
return res;
}
int DFS(TreeNode* root,int &res){
if(!root) return ;
int left = max(DFS(root->left,res),);
int right = max(DFS(root->right,res),);
res = max(res,left+right+root->val);
return max(left,right)+root->val; //res是整个树的最大值,return 的是作为单节点的最大值,不矛盾
}
};
_