设为首页 加入收藏

TOP

leetcode - Binary Tree Maximum Path Sum
2015-07-20 17:35:09 来源: 作者: 【 】 浏览:1
Tags:leetcode 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) {}
 * };
 */
struct TreeNode
{
	int val;
	TreeNode *left;
	TreeNode *right;
	TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
    int maxPathSum(TreeNode *root) {
		if(root == NULL) return 0;
		maxNode = root->val;
		dfs(root);
		return maxNode;
    }
private:
	int maxNode;
	int dfs(TreeNode *root)
	{
		if(root == NULL) return 0;
		int left = dfs(root->left);
		int right= dfs(root->right);
		int val = root->val;
		if(left > 0) val += left;
		if(right> 0) val += right;
		if(maxNode < val) maxNode = val;
		return std::max(std::max(left,right),0) + root->val;
	}
};


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HYSBZ 1036 树的统计Count(树链.. 下一篇ACM POJ 1146 ID Codes

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)