二叉树焰火
给定一棵二叉树 root
代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。
示例 1:
输入:root = [1,3,2,1,null,2]
输出:3
解释:焰火中有 3 个不同的颜色,值分别为 1、2、3
示例 2:
输入:root = [3,3,3]
输出:1
解释:焰火中仅出现 1 个颜色,值为 3
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sZ59z6
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
先遍历再利用set方法去除重复数据
/** * 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: set<int> us; void dfs(TreeNode * rt) { if (rt) { us.insert(rt->val); dfs(rt->left); dfs(rt->right); } } int numColor(TreeNode* root) { dfs(root); return (int)us.size(); } };