注意 返回到上一层的值 只能是自己或由自己一条子树返回的值
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类
# @return int整型
#
class Solution:
def __init__(self):
self.res = None
def maxPathSum(self , root ):
# write code here
if root == None:
return None
self.res = root.val
self.rec(root)
return self.res
def rec(self,root):
if root == None:
return 0
l = self.rec(root.left)
r = self.rec(root.right)
self.res = max(self.res,root.val,root.val+l,root.val+r,root.val+l+r)
return max(root.val,root.val+l,root.val+r)