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

Binary Tree Maximum Path Sum 自底向上求解(重重重)

时间:2014-08-18 23:39:53      阅读:397      评论:0      收藏:0      [点我收藏+]

标签:http   io   ar   代码   ef   on   leetcode   c   

题目:

链接

解答:

自底向上求解。left_max right_max分别返回了左右子树的最大路径和,如果左右子树最大路径和小于0,那么返回零, 用这个最大路径和和根节点的值相加,来更新最大值,同时, 更新返回该树的最大路径值。

代码:

 class Solution {
 public:
	 int max = INT_MIN;
	 int maxPathSum(TreeNode *root) {
		 if (root == NULL)
			 return 0;
		 search(root);
		 return max;
	 }
	 int search(TreeNode *root)
	 {
		 if (root == NULL)
			 return 0;
		 int left_max = search(root->left);
		 int right_max = search(root->right);
		 int sum = left_max + right_max + root->val;
		 if (sum > max)
			 max = sum;
		 sum = left_max > right_max ? left_max + root->val : right_max + root->val;
		 if (sum > 0)
			 return sum;
		 return 0;
	 }

 };


Binary Tree Maximum Path Sum 自底向上求解(重重重),布布扣,bubuko.com

Binary Tree Maximum Path Sum 自底向上求解(重重重)

标签:http   io   ar   代码   ef   on   leetcode   c   

原文地址:http://blog.csdn.net/skyoceanlover/article/details/38668089

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