您的位置:首页 > 其它

Leetcode : Binary Tree Maximum Path Sum

2017-11-18 09:58 453 查看

url :

https://leetcode.com/problems/binary-tree-maximum-path-sum/description/

描述

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


Return 6.

解题思路:

后续遍历,很简单直接上代码。

代码:

class Solution {
//记录最大值
private int max = -1 << 28;

public int maxPathSum(TreeNode root) {
maxHelper(root);
return max;
}
//后续遍历
private int maxHelper(TreeNode node){
if(node==null) return 0;
int left = maxHelper(node.left);
int right = maxHelper(node.right);
max = Math.max(max,left+right+node.val);
//返回的时候只能返回其中一个分支,这个点也是比较难想到的
int sum = node.val + Math.max(left,right);
return sum < 0 ? 0:sum;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: