|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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]
复制代码 |
|