124. Binary Tree Maximum Path Sum

题意:给定一个二叉树,每个节点有一个权值,寻找任意一个路径,使得权值和最大,只需返回权值和。

思路:对于每一个节点 首先考虑以这个节点为结尾(包含它或者不包含)的最大值,有两种情况,分别来自左儿子和右儿子设为Vnow。

然后考虑经过这个节点的情况来更新最终答案。更新答案后返回Vnow供父节点继续更新。

代码很简单.

有一个类似的很有趣的题目,给定一个二叉树,选择一条路径,使得权值最大的和最小的相差最大。参考POJ3728

class Solution {
public:
int ans;
Solution(){ans=-2147483647;}
int maxPathSum(TreeNode* root) {
solve(root);
return ans;
}
int solve(TreeNode* root) {
if(root->left==NULL&&root->right==NULL)
{ans=max(ans,root->val);return root->val;}
int vnow=root->val;ans=max(ans,vnow);
int lv=0,rv=0;
if(root->left!=NULL)
{
lv=solve(root->left);
vnow=max(vnow,root->val+lv);
ans=max(ans,vnow);
}
if(root->right!=NULL)
{
rv=solve(root->right);
vnow=max(vnow,root->val+rv);
ans=max(ans,vnow);
}
ans=max(ans,lv+rv+root->val);
return vnow;
}
};

  

最新文章

  1. Diffuse_Shader笔记1.shader和编辑器的交互
  2. 十四、Java基础---------String、StringBuffer、StringBuilder基本应用
  3. C#基础之lock
  4. BZOJ1224: [HNOI2002]彩票
  5. GCC笔记
  6. iOS JSON解析
  7. android 应用页面与数据申请逻辑剥离;
  8. 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
  9. POJ ---3070 (矩阵乘法求Fibonacci 数列)
  10. [BZOJ 1029] [JSOI2007] 建筑抢修 【贪心】
  11. 生成MyEclipse6.5&7.5&8.0注册码的java源码
  12. HDU H204 阿牛的EOF牛肉串
  13. object-c编程tips-timer
  14. Linode开通新加坡机房:vps速度快,价格不变!
  15. eclipse导入本地的svn项目后不能在team提交更新
  16. ListBox、ListCtrl
  17. MyBatis之反射技术+JDK动态代理+cglib代理
  18. 【AtCoder】CODE FESTIVAL 2017 qual B
  19. CentOS 的 /etc/profile 和 ~/.bash_profile 及 .zshrc
  20. top命令详析及排查问题使用演示

热门文章

  1. QuickClip—界面原型设计
  2. Python orm基础
  3. Luogu P1311 选择客栈
  4. Centos7安装MySQL5.7(yum)
  5. led1,1s取反,led2计数10次取反
  6. sql 生成某个范围内的随机数
  7. 转载 - JSONObject简介
  8. [bzoj1001]狼爪兔子[平面图的最小割等于其对偶图的最短路]
  9. [bzoj1070][SCOI2007]修车[ 网络流]
  10. Minimum Sum LCM(uva 10791)