二叉树的层次遍历python
时间: 2023-10-14 20:16:36 浏览: 106
二叉树的层次遍历可以使用广度优先搜索(BFS)来实现。具体实现方法如下:
1. 定义一个队列,将根节点加入队列中。
2. 当队列不为空时,依次从队列中取出节点,并将其左右子节点(如果有)加入队列中。
3. 将取出的节点的值加入结果列表中。
4. 重复步骤2-3,直到队列为空。
以下是 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 []
res = []
queue = [root]
while queue:
level = []
for _ in range(len(queue)):
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
```
其中,TreeNode 是二叉树节点的定义,levelOrder 函数实现了二叉树的层次遍历,返回结果为一个列表,其中每个子列表代表二叉树的一层。
阅读全文