Binary Tree Maximum Path Sum
2015-08-02 21:27
274 查看
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,
Return
Runtime: 32ms.
The path may start and end at any node in the tree.
For example:
Given the below binary tree,
1 / \ 2 3
Return
6.
Runtime: 32ms.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int maxPathSum(TreeNode* root) { maxSum = INT_MIN; pathSum(root); return maxSum; } int pathSum(TreeNode* root){ if(!root) return 0; int leftSum = pathSum(root->left); int rightSum = pathSum(root->right); int sum = root->val; if(leftSum > 0) sum += leftSum; if(rightSum > 0) sum += rightSum; maxSum = max(sum, maxSum); return max(leftSum, rightSum) > 0 ? max(leftSum, rightSum) + root->val : root->val; } private: int maxSum; };
相关文章推荐
- (转)最小生成树
- angularJS--多个控制器之间的数据共享
- Android OpenGL ES2.0之光照的学习总结
- MAP基本操作函数
- 请高手指点,PHP问题,解密出一个文件,不知道这个是什么用的,怎么使用,谢谢好友指点
- 《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
- 面试准备---排序算法--冒泡排序
- Eclipse快捷键大全(转载)
- iOS:KVO的概述与使用
- 程序员最应去的网站有哪些?
- 浅析PageRank算法
- hdu5323 给出左右边界,求出线段树最小的大小(暴力dfs搜索)
- Material Design之Material Menu侧滑菜单
- 洗牌算法
- hdu 3338 Kakuro Extension(最大流)
- 生命在于运动
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
- [转载] java web开发一个帐号同一时间只能一个人登录
- RMQ 与 LCA-ST算法