304 North Cardinal St.
Dorchester Center, MA 02124

# Binary Tree Maximum Path Sum LeetCode Solution

## Problem – Binary Tree Maximum Path Sum

path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. Note that the path does not need to pass through the root.

The path sum of a path is the sum of the node’s values in the path.

Given the `root` of a binary tree, return the maximum path sum of any non-empty path.

Example 1:

``````Input: root = [1,2,3]
Output: 6
Explanation: The optimal path is 2 -> 1 -> 3 with a path sum of 2 + 1 + 3 = 6.``````

Example 2:

``````Input: root = [-10,9,20,null,null,15,7]
Output: 42
Explanation: The optimal path is 15 -> 20 -> 7 with a path sum of 15 + 20 + 7 = 42.``````

Constraints:

• The number of nodes in the tree is in the range `[1, 3 * 104]`.
• `-1000 <= Node.val <= 1000`

### Binary Tree Maximum Path Sum LeetCode Solution in Java

``````public class Solution {
int maxValue;

public int maxPathSum(TreeNode root) {
maxValue = Integer.MIN_VALUE;
maxPathDown(root);
return maxValue;
}

private int maxPathDown(TreeNode node) {
if (node == null) return 0;
int left = Math.max(0, maxPathDown(node.left));
int right = Math.max(0, maxPathDown(node.right));
maxValue = Math.max(maxValue, left + right + node.val);
return Math.max(left, right) + node.val;
}
}
``````

### Binary Tree Maximum Path Sum LeetCode Solution in Python

``````def maxPathSum(self, root):
def maxsums(node):
if not node:
return [-2**31] * 2
left = maxsums(node.left)
right = maxsums(node.right)
return [node.val + max(left, right, 0),
max(left + right + [node.val + left + right])]
return max(maxsums(root))``````

### Binary Tree Maximum Path Sum LeetCode Solution in C++

``````class Solution {
int sum;
public:
int maxPathSum(TreeNode* root) {
sum=INT_MIN;
help(root);
return sum;
}

/*** return the max-value-ended-at-root-node ***/
int help(TreeNode* root){
if(!root)   return 0;
int left = max(0, help(root->left));
int right = max(0, help(root->right));
/*** key parts : embedding the max-value-find in the recursion process ***/
sum = max(sum, left+right+root->val);
/*** get the max-value-ended-at-root ***/
return max(left, right)+root->val;
}
};``````
##### Binary Tree Maximum Path Sum LeetCode Solution Review:

In our experience, we suggest you solve this Binary Tree Maximum Path Sum LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Binary Tree Maximum Path Sum LeetCode Solution

Find on LeetCode

##### Conclusion:

I hope this Binary Tree Maximum Path Sum LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

LeetCode Solutions

Hacker Rank Solutions

CodeChef Solutions