leetcode的难题差不多刷完了,剩下的就有空做一做吧。
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int maxRes = INT_MIN;
int maxVal(TreeNode *node){
int left = 0, right = 0;
if (node->left)
{
left = maxVal(node->left);
}
if (node->right)
{
right = maxVal(node->right);
}
int tmpr = left + right + node->val;
if (tmpr > maxRes)
{
maxRes = tmpr;
}
int res = left > right ? left + node->val : right + node->val;
return res > 0 ? res : 0;
}
int maxPathSum(TreeNode *root) {
if (!root)
{
return 0;
}
maxVal(root);
return maxRes;
}
};
本文介绍了一种解决LeetCode上复杂二叉树路径求和问题的方法。通过递归算法找到二叉树中最大路径和,重点讲解了核心代码实现细节。
549

被折叠的 条评论
为什么被折叠?



