Given a binary tree, find the maximum path sum.
The path may start and end at any node in the tree.
For example:
Given the below binary tree,
1 / 2 3
Return 6
.
1 /**2 * Definition for binary tree3 * public class TreeNode {4 * int val;5 * TreeNode left;6 * TreeNode right;7 * TreeNode (int x) {val = x;}8 * }9 */Ten Public classSolution { One intMax =Integer.min_value; A Public intmaxpathsum (TreeNode root) { - if(Root = =NULL) { - return0; the } - maxsum (root); - returnMax; - } + - Private intmaxsum (TreeNode root) { + if(Root = =NULL) { A return0; at } - intLeftsum=0; - intRightsum=0; - intVal=Root.val; - if(Root.left! =NULL) { -Leftsum =maxsum (root.left); in if(Leftsum > 0) { -val = val +leftsum; to } + } - the if(Root.right! =NULL) { *Rightsum =maxsum (root.right); $ if(Rightsum > 0) {Panax Notoginsengval = val +rightsum; - } the } + A if(Val >max) { theMax =Val; + } - $ returnMath.max (Root.val, Math.max (Root.val + leftsum, Root.val +rightsum)); $ - - } the}
Leetcode Binary Tree Maximum Path Sum