/\*\*
\* Definition for a binary tree node.
\* public class TreeNode {
\* int val;
\* TreeNode left;
\* TreeNode right;
\* TreeNode(int x) { val = x; }
\* }
\*/
class Solution {
public int numColor(TreeNode root) {
int ans = 0;
boolean[] flag = new boolean[1001];
dfs(root, flag);
for (boolean f : flag) {
if (f) {
ans++;
}
}
return ans;
}
private void dfs(TreeNode root, boolean[] flag) {
if (root != null) {
flag[root.val] = true;
dfs(root.left, flag);
dfs(root.right, flag);
}
}
}
c
/\*\*
\* Definition for a binary tree node.
\* struct TreeNode {
\* int val;
\* struct TreeNode \*left;
\* struct TreeNode \*right;
\* };
\*/
int numColor(struct TreeNode \*root) {
int ans = 0;
bool flag[1001] = {false};
dfs(root, flag);
for (int i = 1; i < 1001; ++i) {
if (flag[i]) {
ans++;
}
}
return ans;
}
void dfs(struct TreeNode \*root, bool \*flag) {
if (root) {
flag[root->val] = true;
dfs(root->left, flag);
dfs(root->right, flag);
}
}
c++
/\*\*
\* 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:
int numColor(struct TreeNode \*root) {
int ans = 0;
bool flag[1001] = {false};
dfs(root, flag);
for (bool f : flag) {
if (f) {
ans++;
}
}
return ans;
}
void dfs(struct TreeNode \*root, bool \*flag) {
if (root != nullptr) {
flag[root->val] = true;
dfs(root->left, flag);
dfs(root->right, flag);
}
}
};
python
# Definition for a binary tree node.
# class TreeNode:
# def \_\_init\_\_(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def numColor(self, root: TreeNode) -> int:
ans = 0
flag = [False] \* 1001
def dfs(n):
if n:
flag[n.val] = True
dfs(n.left)
dfs(n.right)
dfs(root)
for f in flag:
if f:
ans += 1
return ans
go
/\*\*
\* Definition for a binary tree node.
\* type TreeNode struct {
\* Val int
\* Left \*TreeNode
\* Right \*TreeNode
\* }
\*/
func numColor(root \*TreeNode) int {
ans := 0
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210511152217670.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWd1aWd1,size_16,color_FFFFFF,t_70)
**感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:**
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**