Binary Tree Maximum Path Sum
来源:互联网 发布:软件企业培训费 编辑:程序博客网 时间:2024/04/29 12:02
Binary Tree Maximum Path Sum:
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
.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */#define INVALID_MIN -10000class Solution {public: int maxPathSum(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function if ( !root ) return 0;int sum=0,path=0;solve(root,sum,path);return sum; }void solve(TreeNode* root,int& sum,int& path){if ( !root ){sum=path=INVALID_MIN;return;}int lsum=0,lpath=0;solve(root->left,lsum,lpath);int rsum=0,rpath=0;solve(root->right,rsum,rpath);path=max(root->val,max(lpath,rpath)+root->val);sum=max(max(lsum,rsum),lpath+rpath+root->val);sum=max(sum,path);}};
- 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
- 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
- 大二的开始ging
- Android 运行底层linux外部命令的实现
- 剑指offer--算法(7、14、16、21、25、28、59、37、43、51、46、58)
- “ORA-01589:must use RESETLOGS or NORESETLOGS option for database open”
- 【转载】跳表SkipList的原理和实现
- Binary Tree Maximum Path Sum
- 假如生活欺骗了你
- 二叉树遍历的迭代算法
- 篮球和学习
- JS DATE 计算两个日期之差
- 【技术文档】《算法设计与分析导论》R.C.T.Lee等·第7章 动态规划
- 高级数据结构书籍 第二章
- EL表达式和JSTL标签库学习笔记
- github 简单使用方法(linux)