比较,如果从这一分支出发总和更大,修改tmp,若分支和小于零,放弃
int tmp = INT_MIN;
int maxPathSum(TreeNode* root) {
getdfs(root);
return tmp;
}
int getdfs(TreeNode* node){
if(node == NULL) return 0;
int left = max(getdfs(node->left),0);
int right = max(getdfs(node->right),0);
int size = left + right + node->val;
tmp = tmp > size ? tmp: size;
return (right > left ? right:left) + node->val;
}