965. 单值二叉树

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false。

示例 1:

 

输入:[1,1,1,1,1,null,1]
输出:true
示例 2:

 

输入:[2,2,2,5,2]
输出:false
 

提示:

给定树的节点数范围是 [1, 100]。
每个节点的值都是整数,范围为 [0, 99] 。

思路:层次遍历喽。

solution1:

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 class Solution {
11 public:
12     bool isUnivalTree(TreeNode* root) {
13       if(root == nullptr) return true;
14       TreeNode *p =root;
15       int val = p->val;
16       queue<TreeNode*> q;
17       q.push(p);
18       while(!q.empty())
19       {
20         TreeNode* front = q.front();
21         if(front->val != val) return false;
22         q.pop();
23         if(front->left) q.push(front->left);
24         if(front->right) q.push(front->right);
25       }
26       return true;
27     }
28 };

solution2:(递归)

原文地址:https://www.cnblogs.com/Swetchine/p/11306573.html