首页 > 其他 > 详细

[Algo] 140. Maximum Path Sum Binary Tree III

时间:2020-03-06 13:40:16      阅读:53      评论:0      收藏:0      [点我收藏+]

 

Given a binary tree in which each node contains an integer number. Find the maximum possible subpath sum(both the starting and ending node of the subpath should be on the same path from root to one of the leaf nodes, and the subpath is allowed to contain only one node).

Assumptions

  • The root of given binary tree is not null

Examples

   -5

  /    \

2      11

     /    \

    6     14

           /

        -3

The maximum path sum is 11 + 14 = 25

 

Solution 1:

/**
 * public class TreeNode {
 *   public int key;
 *   public TreeNode left;
 *   public TreeNode right;
 *   public TreeNode(int key) {
 *     this.key = key;
 *   }
 * }
 */
public class Solution {
  int maxValue = Integer.MIN_VALUE;
  public int maxPathSum(TreeNode root) {
    // Write your solution here
    helper(root, 0);
    return maxValue;
  }

  private void helper(TreeNode root, int preSum) {
    if (root == null) {
      return;
    }
    int curSum = preSum < 0 ? root.key : root.key + preSum;
    maxValue = Math.max(maxValue, curSum);
    helper(root.left, curSum);
    helper(root.right, curSum);
  }
}

 

Solution 2:

/**
 * public class TreeNode {
 *   public int key;
 *   public TreeNode left;
 *   public TreeNode right;
 *   public TreeNode(int key) {
 *     this.key = key;
 *   }
 * }
 */
public class Solution {
  int maxValue = Integer.MIN_VALUE;
  public int maxPathSum(TreeNode root) {
    // Write your solution here
    helper(root);
    return maxValue;
  }

  private int helper(TreeNode root) {
    if (root == null) {
      return 0;
    }
    int left = helper(root.left);
    int right = helper(root.right);
    int curSum = root.key + Math.max(0, Math.max(left, right));
    maxValue = Math.max(maxValue, curSum);
    return curSum;
  }
}

 

[Algo] 140. Maximum Path Sum Binary Tree III

原文:https://www.cnblogs.com/xuanlu/p/12425945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!