📅  最后修改于: 2023-12-03 14:49:01.455000             🧑  作者: Mango
二叉树的双阶遍历是指将二叉树的节点按层进行遍历,即先遍历第一层节点,再遍历第二层节点,以此类推,直到遍历完所有的节点。
二叉树的双阶遍历可以使用队列来实现。具体实现如下:
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res, queue = [], [root]
reverse = False
while queue:
level = []
size = len(queue)
for i in range(size):
node = queue.pop(0)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
level.append(node.val)
if reverse:
res.append(level[::-1])
else:
res.append(level)
reverse = not reverse
return res
这是Python实现的代码示例。其中,root
为二叉树的根节点。返回的结果是一个列表,列表中包含了二叉树每一层的节点值。如果要求返回所有节点的值,则直接返回res
即可。
二叉树的双阶遍历可以应用于很多场景中,例如输出二叉树的层次结构、计算二叉树的最小深度等。同时,它也是其它遍历方式(如前序遍历、中序遍历、后序遍历)的基础。因此,掌握二叉树的双阶遍历对程序员来说是非常重要的。