给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 请用X语言实现
时间: 2024-01-05 08:51:54 浏览: 84
这里给出 Python3 的实现:
```python
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
queue = [root]
res = []
while queue:
level_res = []
for _ in range(len(queue)):
node = queue.pop(0)
level_res.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level_res)
return res
```
解释:
- 首先判断根节点是否为空,若为空则返回空列表。
- 初始化队列 queue,并将根节点加入队列。
- 初始化空列表 res,用于存储每层的节点值。
- 当队列不为空时,执行如下循环:
- 初始化空列表 level_res,用于存储当前层的节点值。
- 遍历当前层的所有节点,将其从队列中弹出,并将其值加入 level_res 中。
- 若当前节点有左子节点,则将其左子节点加入队列。
- 若当前节点有右子节点,则将其右子节点加入队列。
- 将 level_res 加入 res 中。
- 循环结束后,返回 res。
阅读全文