- Leetcode 3249. Count the Number of Good Nodes
- 1. 解题思路
- 2. 代码实现
- 题目链接:3249. Count the Number of Good Nodes
1. 解题思路
这一题思路上的话其实就是一个树的遍历,由于已知根节点为0,因此还比较简单,随便用一个深度优先遍历查看一下每一个节点所包含的所有子结点的个数即可。
2. 代码实现
给出python代码实现如下:
class Solution:def countGoodNodes(self, edges: List[List[int]]) -> int:graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u)ans = 0def dfs(root, parent):nonlocal anscnt = 0children = []for u in graph[root]:if u == parent:continuec = dfs(u, root)children.append(c)cnt += ccnt += 1if children == [] or all(x == children[0] for x in children):ans += 1return cntdfs(0, -1)return ans
提交代码评测得到:耗时3083ms,占用内存90.4MB。