leetcode-テンセント精選練習(50題)python#124ツリーの最大パスと

885 ワード

leetcode-テンセント精選練習(50題)python#124ツリーの最大パスとテーマソース:https://leetcode-cn.com/problemset/50/空でないツリーを指定し、最大パスとを返します.
本題では,経路はツリー内の任意のノードから任意のノードに達するシーケンスとして定義される.パスには少なくとも1つのノードが含まれており、ルートノードを通過する必要はありません.
例1:
入力:[1,2,3]
   1
  / \
 2   3

出力:6例2:
入力:[-10,9,20,null,null,15,7]
-10/ 9 20/ 15 7
出力:42
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def maxPathSum(self, root: TreeNode, ok=True) -> int:
        if not root: return 0
        l, r = self.maxPathSum(root.left, False), self.maxPathSum(root.right, False)
        self.max = max(getattr(self, 'max', float('-inf')), l + root.val + r)
        return self.max if ok else max(root.val + max(l, r), 0)