class Solution {
int maxx=INT_MIN;
public:
int ans(TreeNode* root)
{
if(root==NULL)return 0;
int l = ans(root->left);
int r = ans(root->right);
maxx = max(maxx,l+r+root->val);
return max(0,max(l+root->val,r+root->val));
}
int maxPathSum(TreeNode* root) {
int pathSum = ans(root);
return maxx;
}
};