求给定一颗二叉树,借助队列实现层次遍历二叉树的代码
时间: 2023-11-20 20:05:24 浏览: 33
好的,下面是基于队列实现层次遍历二叉树的 Python 代码:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def level_order_traversal(root):
if not root:
return []
queue = [root] # 初始化队列,将根节点加入队列
res = [] # 初始化层次遍历结果
while queue:
level_res = [] # 用来存储当前层次的遍历结果
# 遍历当前队列中的所有节点,将它们的左右子节点加入队列
for i in range(len(queue)):
node = queue.pop(0)
level_res.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level_res) # 将当前层次的遍历结果加入总的遍历结果中
return res
```
使用方法如下:
```
# 构造二叉树
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)
# 层次遍历二叉树
print(level_order_traversal(root)) # 输出 [[3], [9, 20], [15, 7]]
```
希望能够帮到您!