Binary Tree Maximum Path Sum 自底向上求解(重重重重)
Posted mthoutai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Binary Tree Maximum Path Sum 自底向上求解(重重重重)相关的知识,希望对你有一定的参考价值。
题目:
解答:
自底向上求解。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 自底向上求解(重重重重)的主要内容,如果未能解决你的问题,请参考以下文章
124. Binary Tree Maximum Path Sum
binary-tree-maximum-path-sum(mock)
LeetCode - Binary Tree Maximum Path Sum