Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
A 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:
[1, 3 * 104]
.-1000 <= Node.val <= 1000
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;
}
}
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[0], right[0], 0),
max(left + right + [node.val + left[0] + right[0]])]
return max(maxsums(root))
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;
}
};
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
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 >>