Question
A binary tree is univalued if every node in the tree has the same value.
Return true
if and only if the given tree is univalued.
Example 1:
Input: [1,1,1,1,1,null,1] Output: true
Example 2:
Input: [2,2,2,5,2] Output: false
Note:
- The number of nodes in the given tree will be in the range
[1, 100]
. - Each node's value will be an integer in the range
[0, 99]
.
Difficulty:Easy
Category:Tree
Analyze
Solution
class Solution {
public:
bool isUnivalTree(TreeNode* root) {
if (!root) return true;
int val = root->val;
return isUnivalTree(root, val);
}
bool isUnivalTree(TreeNode* root, int val) {
if (!root) return true;
if (root->val == val) {
return isUnivalTree(root->left, val) && isUnivalTree(root->right, val);
} else {
return false;
}
}
};