层次遍历(也称为广度优先遍历)是一种用于遍历树或图的算法。在层次遍历中,我们按照从上到下、从左到右的顺序访问树的节点。以下是实现层次遍历的步骤:
对于树:
1. 初始化:
创建一个队列,用于存储待访问的节点。
将根节点加入队列。
2. 遍历:
当队列为空时,遍历结束。
从队列中取出一个节点,并访问它。
将该节点的所有子节点加入队列。
3. 重复步骤2,直到队列为空。
对于图:
1. 初始化:
创建一个队列,用于存储待访问的节点。
将起始节点加入队列。
2. 遍历:
当队列为空时,遍历结束。
从队列中取出一个节点,并访问它。
将该节点的所有未访问过的邻接节点加入队列。
3. 重复步骤2,直到队列为空。
以下是一个使用Python实现的树层次遍历的示例代码:
```python
from collections import deque
class TreeNode:
def __init__(self, value=0, left=None, right=None):
self.val = value
self.left = left
self.right = right
def level_order_traversal(root):
if not root:
return []
result = []
queue = deque([root])
while queue:
node = queue.popleft()
result.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return result
```
这段代码定义了一个`TreeNode`类来表示树的节点,并实现了`level_order_traversal`函数来进行层次遍历。你可以通过创建一个树并调用`level_order_traversal`函数来测试这段代码。