马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def maxPathSum(self, root: Optional[TreeNode]) -> int:
self.res = 0 #初始化全局变量
def helper(node):
if not node: return 0 #如果没有节点(是叶子结点),返回0
self.res = max(self.res,(helper(node.left) + helper(node.right) + node.val)) #结果为左右子树最大权值加上根节点的值
return max(0,max(helper(node.left),helper(node.right)) + node.val)#最大值为左右子树
helper(root)
return self.res
帮我逐层分析一下,尤其不懂helper函数的返回值为什么是max(0,max(helper(node.left),helper(node.right)) + node.val)
其中,root =
[-10,9,20,null,null,15,7]
|