---
description: Today 1 leet , tomorrow 頂天leet地
image: https://leetcode.com/static/images/LeetCode_Sharing.png
---
# Univalued Binary Tree
[題目網址<i class="fa fa-link"></i>](https://leetcode.com/problems/univalued-binary-tree/)
## 題目敘述
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.
:::spoiler **Example 1**
> **Input:** [1,1,1,1,1,null,1]
> **Output:** true
:::
:::spoiler **Example 2**
> **Input:** [2,2,2,5,2]
> **Output:** false
:::
## 解題思維
以遞迴遍歷有無不一樣的val
## 程式碼
```cpp=!
class Solution {
public:
bool isUnivalTree(TreeNode* root) {
if(root==NULL||(root->right==NULL&&root->left==NULL))
return 1;
if( (root->right!=NULL&&root->right->val!=root->val)
||(root->left!=NULL&&root->left->val!=root->val) )
return 0;
return isUnivalTree(root->right)&&isUnivalTree(root->left);
}
};
```
###### tags: `LeetCode` `Depth-First Search` `Breadth-First Search` `Binary Tree`