码迷,mamicode.com
首页 > 其他好文 > 详细

第四周 Leetcode 124. Binary Tree Maximum Path Sum (HARD)

时间:2017-03-14 22:57:31      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:turn   有趣的   更新   href   style   desc   tco   节点   amp   

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;
    }
};

  

第四周 Leetcode 124. Binary Tree Maximum Path Sum (HARD)

标签:turn   有趣的   更新   href   style   desc   tco   节点   amp   

原文地址:http://www.cnblogs.com/heisenberg-/p/6551032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!