Determine whether the root node is equal to the sum of child nodes

LeetCode: LeetCode official website - a technology growth platform loved by global geeks

Sample code:

# 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

Sample code 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)

Guess you like

Origin blog.csdn.net/weixin_44799217/article/details/132389579