2236-判断根结点是否等于子结点之和

Raphael Liu Lv10

给你一个 二叉树 的根结点 root,该二叉树由恰好 3 个结点组成:根结点、左子结点和右子结点。

如果根结点值等于两个子结点值之和,返回 true ,否则返回 _ _false

示例 1:

**输入:** root = [10,4,6]
**输出:** true
**解释:** 根结点、左子结点和右子结点的值分别是 10 、4 和 6 。
由于 10 等于 4 + 6 ,因此返回 true 。

示例 2:

**输入:** root = [5,3,1]
**输出:** false
**解释:** 根结点、左子结点和右子结点的值分别是 5 、3 和 1 。
由于 5 不等于 3 + 1 ,因此返回 false 。

提示:

  • 树只包含根结点、左子结点和右子结点
  • -100 <= Node.val <= 100

方法一:直接判断

计算两个子结点值之和,判断是否等于根结点值即可。

[sol1-Java]
1
2
3
4
5
class Solution {
public boolean checkTree(TreeNode root) {
return root.val == root.left.val + root.right.val;
}
}
[sol1-C#]
1
2
3
4
5
public class Solution {
public bool CheckTree(TreeNode root) {
return root.val == root.left.val + root.right.val;
}
}
[sol1-C++]
1
2
3
4
5
6
class Solution {
public:
bool checkTree(TreeNode* root) {
return root->val == root->left->val + root->right->val;
}
};
[sol1-Python3]
1
2
3
class Solution:
def checkTree(self, root: Optional[TreeNode]) -> bool:
return root.val == root.left.val + root.right.val
[sol1-C]
1
2
3
bool checkTree(struct TreeNode* root) {
return root->val == root->left->val + root->right->val;
}
[sol1-Golang]
1
2
3
func checkTree(root *TreeNode) bool {
return root.Val == root.Left.Val + root.Right.Val
}
[sol1-JavaScript]
1
2
3
var checkTree = function(root) {
return root.val === root.left.val + root.right.val;
};

复杂度分析

  • 时间复杂度:O(1)。

  • 空间复杂度:O(1)。

 Comments
On this page
2236-判断根结点是否等于子结点之和