/**

  • struct TreeNode {
  • int val;
  • struct TreeNode *left;
  • struct TreeNode *right;
  • }; */

class Solution { public: /** * * @param root TreeNode类 * @return int整型 / int ans = -2e9; int maxPathSum(TreeNode root) {

    find_max(root);
    return ans;
}

int find_max(TreeNode* root)
{
    if(!root) return 0;
    int left = max(0, find_max(root -> left));
    int right = max(0, find_max(root -> right));
    ans = max(ans, left + right + root -> val);
    return max(left, right) + root -> val;
}

};