如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true;否则返回 false。
思路:父亲 = 左孩子
父亲 = 右孩子
父亲和左右孩子比,然后孩子作为父亲,再和它的左右孩子比
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isUnivalTree(struct TreeNode* root){
if(root==NULL)
{
return true;
}
if(root->left && root->left->val != root->val)
{
//左孩子存在,并且左孩子不等于父亲
return false;
}
if(root->right && root->right->val != root->val)
{
//右孩子存在并且右孩子不等于父亲
return false;
}
//左右孩子都不存在,或者左右孩子都存在并且都等于父亲,再分别判断左子树和右子树
return isUnivalTree(root->left) && isUnivalTree(root->right);
}