题目描述:
给定一个非空二叉树,返回其最大路径和。
本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。
测试用例:
代码如下:实在没有思路,看了官方解答
class Solution:
def maxPathSum(self, root: TreeNode) -> int:
sum2 = -float('inf')
def Fun(a):
nonlocal sum2
if not a:
return 0
left = max(Fun(a.left), 0)
right = max(Fun(a.right), 0)
sum1 = a.val + left + right
sum2 = max(sum1, sum2)
return a.val + max(left, right)
Fun(root)
return sum2