完成二叉树层序遍历的实现 用队列实现 数据结构
时间: 2024-05-16 13:15:28 浏览: 154
完全二叉树的层序遍历.docx 完全二叉树的层序遍历是通过逐层访问树节点的一种遍历方式 层序遍历通常使用队列数据结构来实现
二叉树层序遍历可以使用队列来实现。具体实现步骤如下:
1. 首先将根节点入队。
2. 然后进行循环,直到队列为空。
3. 在每次循环中,将队首元素出队,并将其左右子节点(如果有的话)入队。
4. 记录每层的节点数,当遍历完当前层的所有节点时,将当前层的值存入结果列表中。
5. 最终返回结果列表。
以下是 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: TreeNode) -> List[List[int]]:
if not root:
return []
result = []
queue = [root]
while queue:
level_size = len(queue)
level = []
for i in range(level_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 用于存储待遍历的节点。循环遍历队列中的节点,将其左右子节点入队,并记录每层的节点数。在遍历完当前层的所有节点后,将当前层的值存入结果列表中。最终返回结果列表。
阅读全文