python代码
时间: 2023-07-02 19:17:09 浏览: 82
```python
from collections import deque
t = int(input())
for _ in range(t):
n = int(input())
adj = [[] for _ in range(n)]
for _ in range(n-1):
u, v = map(int, input().split())
u -= 1
v -= 1
adj[u].append(v)
adj[v].append(u)
visited = [False] * n
visited[0] = True
queue = deque([0])
readings = 0
while queue:
size = len(queue)
for _ in range(size):
u = queue.popleft()
for v in adj[u]:
if not visited[v]:
visited[v] = True
queue.append(v)
readings += 1
if not all(visited):
readings += 1
print(readings)
```
注意:在 Python 3 中,`range` 函数的参数必须是整数类型,因此我们需要将输入的顶点编号减去 1。同时,为了避免超时,我们需要在每次进行 BFS 操作之前保存队列的大小,并使用另一个循环遍历该大小,而不是使用单个循环来遍历整个队列。
阅读全文