124. Binary Tree Maximum Path Sum

Given a binary tree, find the maximum path sum.

For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path must contain at least one node and does not need to go through the root.

For example:
Given the below binary tree,

       1
      / \
     2   3

Return6.

思路:受到股票启发

public class Solution {
    int maxVal = Integer.MIN_VALUE;

    public int maxPathSum(TreeNode root) {    
        helper(root);
        return maxVal;
    }

    // helper returns the max branch 
    // plus current node's value
    public int helper(TreeNode root){
        if (root==null) return 0;
        int left = Math.max(helper(root.left),0);
        int right = Math.max(helper(root.right),0); 

        maxVal = Math.max(maxVal,root.val+left+right);

        return root.val+Math.max(left,right);
    }
}

results matching ""

    No results matching ""