binary-tree-maximum-path-sum Java code

来源:互联网 发布:淘宝手机助手苹果版 编辑:程序博客网 时间:2024/05/18 09:27

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
Return6.

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public int maxPathSum(TreeNode root) {        //递归        if(root==null){            return 0;        }        int[] res={Integer.MIN_VALUE};        helper(root,res);        return res[0];    }    public int helper(TreeNode root,int[] res){        int left=0;        int right=0;        if(root.left!=null){            left=helper(root.left,res);            left=left<0?0:left;        }        if(root.right!=null){            right=helper(root.right,res);            right=right<0?0:right;        }        res[0]=Math.max(root.val+left+right,res[0]);        return root.val+Math.max(left,right);    }}
原创粉丝点击