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