od题 大写字母实现二叉树的广度优先遍历python
时间: 2023-08-11 22:02:24 浏览: 105
二叉树遍历广度优先
二叉树的广度优先遍历又称为层次遍历,它按照从上到下、从左到右的顺序依次访问二叉树的所有节点。要实现二叉树的广度优先遍历,可以使用队列来辅助实现。
首先,我们可以定义一个队列,并将根节点入队。然后,进入循环,当队列非空时,执行以下操作:
1. 出队一个节点,并访问该节点。
2. 若该节点的左子节点不为空,将左子节点入队。
3. 若该节点的右子节点不为空,将右子节点入队。
具体的Python代码如下所示:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def breadth_first_traversal(root):
if root is None:
return
queue = []
queue.append(root) # 将根节点入队
while queue:
node = queue.pop(0) # 出队一个节点
print(node.val) # 访问该节点
if node.left: # 若左子节点不为空,将左子节点入队
queue.append(node.left)
if node.right: # 若右子节点不为空,将右子节点入队
queue.append(node.right)
```
在以上代码中,我们首先定义了一个`TreeNode`类,表示二叉树的节点。然后,定义了`breadth_first_traversal`函数,用于实现广度优先遍历。该函数首先对根节点进行判空处理,并定义了一个队列`queue`,将根节点入队。接下来,使用循环遍历队列,每次出队一个节点,并访问该节点的值。然后,判断该节点的左子节点和右子节点是否为空,若不为空,则将它们依次入队。这样,就可以实现二叉树的广度优先遍历。
上述代码只是简单地输出了节点的值,如果需要将遍历结果存储起来,可以将节点的值存入一个列表中,或者进行其他相应的操作。
阅读全文