×【leetcode】Binary Tree Maximum Path Sum
来源:互联网 发布:Minecraft mac光影 编辑:程序博客网 时间:2024/06/15 08:39
链接:https://oj.leetcode.com/problems/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
.
解法:
递归求解,
每一个递归返回两个值,一个值是以该节点为根的树中的最大和,另一个值是一该节点为某一起始点的最大路径。
此题思路需要十分清晰,容易出错。另注意树中含有负数的情况。
代码如下:
int maxPathSum(TreeNode *root) { if(root == NULL) return 0; if(root->left == NULL && root->right == NULL) return root->val; int result = 0; maxSum(root, result); return result; } int maxSum(TreeNode* root, int &maxsum) { if( root == NULL) { maxsum = INT_MIN; return 0; } int leftsum = INT_MIN, rightsum = INT_MIN; int left = maxSum(root->left, leftsum); int right = maxSum(root->right, rightsum); int sum = root->val; if( left > 0) sum += left; if(right > 0) sum += right; maxsum = max(leftsum, rightsum); maxsum = max(maxsum, sum); return max(left, right) > 0 ? max(left, right) + root->val : root->val;; }
0 0
- *****(leetcode) Binary Tree Maximum Path Sum (tree)
- LeetCode Binary Tree Maximum Path Sum
- [Leetcode] Binary Tree Maximum Path Sum
- [leetcode] Binary Tree Maximum Path Sum
- LeetCode Binary Tree Maximum Path Sum
- [LeetCode] Binary Tree Maximum Path Sum
- leetcode Binary Tree Maximum Path Sum
- 【leetcode】Binary Tree Maximum Path Sum
- LeetCode - Binary Tree Maximum Path Sum
- [LeetCode]Binary Tree Maximum Path Sum
- [Leetcode]Binary Tree Maximum Path Sum
- Leetcode: Binary Tree Maximum Path Sum
- LeetCode-Binary Tree Maximum Path Sum
- [leetcode] Binary Tree Maximum Path Sum
- LeetCode - Binary Tree Maximum Path Sum
- LeetCode 124: Binary Tree Maximum Path Sum
- 【Leetcode】Binary Tree Maximum Path Sum
- LeetCode | Binary Tree Maximum Path Sum
- C#:直接在DataGridView控件中修改数据
- linux内核头文件 cdev.h 解析
- HashMap与Hashtable的区别
- PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)
- hdu1874
- ×【leetcode】Binary Tree Maximum Path Sum
- hdu 1073 Online Judge
- 关于C++ const 的全面总结
- 关于构造函数
- 数据仓库工作日记_记录(二)-数据治理下
- 马士兵struts2视频教程第十八集
- 使用java语言编写简易计算器
- 技术日记
- 比特币与数学:密码学有多可靠?