*[Lintcode]Binary Tree Maximum Path Sum
来源:互联网 发布:淘宝网官网电话 编辑:程序博客网 时间:2024/05/18 20:06
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
Return 6.
先明确一下路径你给的定义:从根节点到树中某节点经过的分支。一共四种情况:
左子树的路径加上当前节点
右子树的路径加上当前节点
左右子树的路径加上当前节点(计算sum时需要考虑。计算path时,不考虑此情况。)
只有当前节点
public class Solution { /** * @param root: The root of binary tree. * @return: An integer. */ static int max = Integer.MIN_VALUE; //负值在路径上时没有关系,因为计算的是sum public int maxPathSum(TreeNode root) { helper(root); return max; } int helper(TreeNode root) { if(root == null) return 0; int res = root.val; int left = 0; int right = 0; if(root.left != null) { left = helper(root.left); if(left > 0) res += left; } if(root.right != null) { right = helper(root.right); if(right > 0) res += right; } if(res > max) max = res; return Math.max(root.val, Math.max(root.val + left, root.val + right)); }}
0 0
- lintcode:Binary Tree Maximum Path Sum
- *[Lintcode]Binary Tree Maximum Path Sum
- [lintcode] Binary Tree Maximum Path Sum II
- Binary Tree Maximum Path Sum ---lintcode
- 20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- Binary Tree Maximum Path Sum
- DataBinding的基本使用(五)
- 一篇文章弄懂CSS3的content属性
- zookeeper 介绍(译)
- 解决方案之任务队列
- Android Studio把Eclipse android项目当作依赖库lib来使用的一些问题解决
- *[Lintcode]Binary Tree Maximum Path Sum
- leetcode题目总结<2>
- perm
- UVA 10200 Prime Time
- CSDN-markdown 首行缩进的快捷实现: 全角空格配合 
- Linked List Random Node
- ubuntu 文件目錄
- Qt小项目(2):文件遍历
- java常见面试题(含答案)