给你一个 二叉树 的根结点 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
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean checkTree(TreeNode root) {
// 检查根节点的左右子节点是否存在
if (root == null || root.left == null || root.right == null) {
return false;
}
// 获取左右子节点的值
//root.left 返回左子节点的引用。
//root.left.val 返回左子节点的值。
//root.right 返回右子节点的引用。
//root.right.val 返回右子节点的值。
int l = root.left.val;
int r = root.right.val;
// 检查左右子节点值之和是否等于根节点值
return l + r == root.val;//root.val 是用来访问根节点的值的
}
}