二叉树层次遍历输出代码
时间: 2024-03-30 16:30:45 浏览: 14
二叉树的层次遍历是一种广度优先搜索的算法,可以使用队列来实现。以下是一个示例的二叉树层次遍历输出的代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def levelOrder(root):
if not root:
return []
result = []
queue = [root]
while queue:
level = []
size = len(queue)
for _ in range(size):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result
```
这段代码中,我们定义了一个`TreeNode`类来表示二叉树的节点。`levelOrder`函数接受一个二叉树的根节点作为参数,返回一个二维列表,表示二叉树的层次遍历结果。
在函数内部,我们首先判断根节点是否为空,如果为空则直接返回空列表。然后初始化一个空列表`result`用于存储最终的结果,以及一个队列`queue`用于辅助层次遍历。
接下来,我们使用一个循环来进行层次遍历。在每一层的循环中,我们首先创建一个空列表`level`用于存储当前层的节点值。然后获取当前队列的长度`size`,表示当前层的节点个数。
接着,我们使用一个内部循环来遍历当前层的节点。在每次循环中,我们从队列中弹出一个节点,并将其值添加到`level`列表中。然后判断该节点是否有左右子节点,如果有则将其左右子节点加入队列。
内部循环结束后,将`level`列表添加到`result`列表中,表示当前层的节点值已经遍历完。
最后,当队列为空时,表示所有层的节点都已经遍历完毕,我们返回`result`列表作为最终的结果。