Leetcode102. 二叉树的层序遍历
队列版层序遍历
python3代码:
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
# 首先判空
if root is None:
return []
# 初始化队列,添加根节点
que = [root]
# 因为结果是二维的,先定义一个
result = []
# 队列不为空就不停循环
while que:
# tmp用来存储下一层的所有节点
tmp = []
# tmp_val用来存当前层的所有节点值,注意是节点的值,而且是从左到右
tmp_val = []
# 遍历队列中每个节点
for node in que:
# 将节点的值存入tmp_val
tmp_val.append(node.val)
# 将下一层的所有节点存入tmp
if node.left:
tmp.append(node.left)
if node.right:
tmp.append(node.right)
# 将当前层的节点值列表存入result
result.append(tmp_val)
# 将下一层的所有节点列表替换现有的队列
que = tmp
# 返回结果
return result
本文详细解析了LeetCode102题“二叉树的层序遍历”的算法实现,采用队列进行层序遍历,通过Python3代码展示了如何从根节点开始,按层次顺序遍历二叉树,每层节点的值被收集并存储为列表。
685

被折叠的 条评论
为什么被折叠?



