题目描述
如果二叉树每一个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true,否则返回false。
示例1
输入:[1,1,1,1,1,null,1]
输出:true
示例2
输入:[2,2,2,5,2]
输出:false
解题思路
树相关的题目一般都是在遍历基础上进行扩展,要掌握树的先序遍历、中序遍历、后序遍历的递归写法和非递归写法,树的层遍历等。
bool isUnivalTree(TreeNode* root) {
queue<TreeNode *> que;
int signal = root->val;
que.push(root);
while(!que.empty()){
TreeNode *tmp = que.front();
que.pop();
if(tmp->val != signal) return false;
if(tmp->left != NULL){
que.push(tmp->left);
}
if(tmp->right != NULL){
que.push(tmp->right);
}
}
return true;
}