1 class Solution {
2 int max = Integer.MIN_VALUE;
3 public int maxPathSum(TreeNode root) {
4 if(root == null) return 0;
5 if(root.left == null && root.right == null) return root.val;
6 int i = helper(root);
7 return max;
8
9 }
10
11 public int helper(TreeNode root){
12 if(root == null) return 0;
13 int left = helper(root.left);
14 int right = helper(root.right);
15 int maxSingle = Math.max(Math.max(left, right), 0) + root.val;
16 max = Math.max(Math.max(max, maxSingle), (left+right)+root.val);
17 return maxSingle; //因为是path 所以只能返回最大的一边 不能全部返回
18 }
19 }