就是上面让你写的广度遍历的树的代码
时间: 2024-03-13 20:46:11 浏览: 31
好的,下面是广度优先搜索遍历一棵树的代码解释:
```python
from collections import deque
def bfs(root):
if not root:
return
queue = deque([root]) # 创建一个双端队列,并将根节点加入队列中
while queue: # 当队列不为空时
node = queue.popleft() # 取出队头元素
print(node.val) # 访问当前节点
if node.left: # 将当前节点的左右子节点加入队列中
queue.append(node.left)
if node.right:
queue.append(node.right)
```
- `from collections import deque` :从`collections`库中导入`deque`类,`deque`是一个双端队列,可以从队头和队尾分别进行插入、删除等操作。
- `def bfs(root):` :定义一个广度优先搜索遍历树的函数,入参为树的根节点`root`。
- `if not root: return` :如果根节点为空,则直接返回。
- `queue = deque([root])` :创建一个双端队列`queue`,并将根节点`root`加入队列中。
- `while queue:` :当队列不为空时,循环执行以下代码块。
- `node = queue.popleft()` :从队列中取出队头元素,并将其赋值给变量`node`,表示当前节点。
- `print(node.val)` :访问当前节点的值。
- `if node.left: queue.append(node.left)` :如果当前节点有左子节点,则将其加入队列中。
- `if node.right: queue.append(node.right)` :如果当前节点有右子节点,则将其加入队列中。
以上就是广度优先搜索遍历一棵树的代码解释。