二叉树的层序遍历左神
时间: 2023-11-05 07:54:32 浏览: 42
二叉树的层序遍历是一种广度优先搜索(BFS)的算法。左神是指王争老师所著《程序员代码面试指南》一书中的笔名。
下面是层序遍历二叉树的算法步骤:
1. 创建一个队列,并将根节点入队。
2. 当队列不为空时,执行以下步骤:
- 出队一个节点,并输出它的值。
- 如果该节点有左子节点,则将左子节点入队。
- 如果该节点有右子节点,则将右子节点入队。
3. 重复步骤2直到队列为空。
这样就可以按照层序遍历的顺序输出二叉树的节点值。
请注意,这里的二叉树是指普通的二叉树,而不是特定的搜索树或平衡树。
相关问题
Python二叉树层序遍历
Python中实现二叉树层序遍历可以使用队列来实现。具体过程如下:
1. 首先,将根节点入队。
2. 在每个循环中,取出队列的头部元素,并将其值存入结果列表中。
3. 如果该节点存在左子树,将其左子树入队。
4. 如果该节点存在右子树,将其右子树入队。
5. 重复步骤2-4,直到队列为空。
下面是Python实现二叉树层序遍历的代码:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def levelOrder(root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
queue = [root]
while queue:
level = []
n = len(queue)
for i in range(n):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level)
return res
```
二叉树层序遍历python
二叉树的层序遍历是一种广度优先搜索(BFS)的方法,它按照从上到下、从左到右的顺序逐层遍历二叉树的节点。下面是一个用Python实现二叉树层序遍历的示例代码:
```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`函数接受一个二叉树的根节点作为输入,并返回一个二维列表,其中每个子列表表示二叉树的一层。
在函数内部,我们使用一个队列`queue`来辅助进行层序遍历。首先将根节点加入队列中,然后进入循环,直到队列为空。在每一轮循环中,我们先记录当前队列的大小`size`,然后依次从队列中取出`size`个节点,并将它们的值加入到当前层的列表`level`中。同时,如果节点有左子节点或右子节点,我们将它们加入队列中。最后,将当前层的列表`level`加入到结果列表`result`中。
这样,当循环结束后,我们就得到了二叉树的层序遍历结果。