力扣:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例代码:
# 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 checkTree(self, root: Optional[TreeNode]) -> bool:
return root.val == root.left.val + root.right.val
示例代码2:
# 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 checkTree(self, root: Optional[TreeNode]) -> bool:
if not root:
return True # 空树满足条件
def is_sum_equal(node):
if not node:
return False
if node.left and node.right:
return node.val == node.left.val + node.right.val
elif node.left:
return node.val == node.left.val
elif node.right:
return node.val == node.right.val
else:
return True # 叶子节点满足条件
return is_sum_equal(root) and self.checkTree(root.left) and self.checkTree(root.right)