企业网站推广的方法有?中国大宗交易平台
1.题目描述
2.思路
自顶向下递归到叶子结点,然后记录每个结点的max(本身的值、自身值与左孩子值之和、自身值与右孩子值之和)、以及自身与左右两个孩子值之和,回溯的过程就是查找最大和的过程。
3.代码(Python3)
class Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:def tree_traversal(node):nonlocal max_root_sumif node.left is None:left_max = 0else:left_max = tree_traversal(node.left)if node.right is None:right_max = 0else:right_max = tree_traversal(node.right)current_root_max_sum = max(left_max + right_max + node.val, left_max + node.val, right_max + node.val, node.val)if current_root_max_sum > max_root_sum:max_root_sum = current_root_max_sumreturn max(node.val + left_max, node.val + right_max, node.val)max_root_sum = float('-inf')return max(tree_traversal(root), max_root_sum)
4.执行情况
5.感想
首次攻克困难题!