Binary Trees - Maximum Sum Path Of A Binary Tree

I am Nirbhay Singh , I am starting this blog to document my coding journey of becoming a software developer and to get my first $ 100k offer .
Maximum Sum Path Of A Binary Tree
Problem Link:
Hint:
Code:
int helper(BinaryTreeNode<int> *root, int &maxSum){
if(root==NULL){
return 0;
}
int leftPathSum = helper(root->left, maxSum);
int rightPathSum = helper(root->right, maxSum);
int maxi = max(leftPathSum, rightPathSum);
if(leftPathSum>=0 && rightPathSum>=0){
maxSum = max(maxSum, leftPathSum+rightPathSum+root->data);
return root->data+maxi;
}
else if(leftPathSum<0 && rightPathSum<0){
maxSum = max(maxSum, root->data);
return root->data;
}
else{
maxSum = max(maxSum, maxi+root->data);
return maxi+root->data;
}
}
int maxPathSum(BinaryTreeNode<int> *root)
{
// Write your code here
int maxSum = -1e9;
helper(root,maxSum);
return maxSum;
}




