描述:
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true
;否则返回 false
。
示例 1:
输入:[1,1,1,1,1,null,1] 输出:true
示例 2:
输入:[2,2,2,5,2] 输出:false
提示:
- 给定树的节点数范围是
[1, 100]
。 - 每个节点的值都是整数,范围为
[0, 99]
。
解决代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
/**
*判断单值二叉树
*/
bool isUnivalTree(TreeNode * T) {
if(!T || (!T->left&&!T->right)) return true;
bool c1 = true;
if(T->left)
c1 = T->val == T->left->val && isUnivalTree(T->left);
bool c2 = true;
if(T->right)
c2 = T->val == T->right->val && isUnivalTree(T->right);
return c1&&c2;
}
};