235 字
1 分钟
2236. 判断根结点是否等于子结点之和
Problem
给你一个二叉树根结点,判断该根结点是否等于它的左右子结点之和。
树只包含根结点、左子结点和右子结点。
https://leetcode.cn/problems/root-equals-sum-of-children/description/
示例 1:
输入:root = [10, 4, 6] 输出:true 解释:10 == 4 + 6,返回 true。
示例 2:
输入:root = [5, 3, 1] 输出:false 解释:5 != 3 + 1,返回 false。
约束:
- 树只包含 1 到 3 个结点
- 每个结点值在
[0, 100]范围内
思路
直接判断 root.val == root.left.val + root.right.val。注意题目保证左右子结点都存在。
# 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: TreeNode) -> bool: return root.val == root.left.val + root.right.valimport unittest
class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right
class TestCheckTree(unittest.TestCase): def setUp(self): self.solution = Solution()
def test_equal(self): root = TreeNode(10, TreeNode(4), TreeNode(6)) self.assertTrue(self.solution.checkTree(root))
def test_not_equal(self): root = TreeNode(5, TreeNode(3), TreeNode(1)) self.assertFalse(self.solution.checkTree(root))
def test_zero(self): root = TreeNode(0, TreeNode(0), TreeNode(0)) self.assertTrue(self.solution.checkTree(root))
if __name__ == '__main__': unittest.main() 2236. 判断根结点是否等于子结点之和
https://h1s97x.github.io/posts/coding/coding-2236-root-equals-sum-of-children/