如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 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:(递归)