链接:https://leetcode-cn.com/problems/univalued-binary-tree/
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true;否则返回 false。
思路:利用set进行去重,如果set中大小大于1,说明一定不是单值
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
void dfs(TreeNode *root,set<int> &path){
if(!root) return;
path.insert(root->val);
dfs(root->left,path);
dfs(root->right,path);
}
bool isUnivalTree(TreeNode* root) {
set<int> path;
dfs(root,path);
if(path.size()>1)
return false;
return true;
}
};