Advertisement

LeetCode 字形顺序打印二叉树(层序遍历·双端队列·双栈):详细解析步骤

阅读量:

一、题目

设计一个函数,用于以之字形方式输出二叉树的节点值。具体而言,第一层按照由左至右的方向进行输出,第二层则按照由右至左的顺序进行输出,第三层再次采用由左至右的方式,后续各层依次交替进行。

例如:
若给定二叉树为: [3,9,20,null,null,15,7],

复制代码
      3
     / \
    9  20
       /  \
      15   7
    
    
      
      
      
      
      
    

输出其层级遍历的序列结果:

复制代码
    [
    	[3],
    	[20,9],
    	[15,7]
    ]
    
    
      
      
      
      
      
    

二、思路分析框架构建

本题主要涉及二叉树的层次遍历问题。相较于常规的层次遍历方式,该题目新增了特定的输出要求,即需要按照之子形的顺序进行打印。接下来将依次阐述三种不同的实现方法。

1. 层序遍历 + 反转数组

在先前发布的文章BFS和DFS两种方式实现二叉树的层序遍历中,我们详细阐述了利用广度优先搜索与深度优先搜索两种方式来完成层序遍历的实现过程。通过层序遍历所获得的最终结果如下所示:

复制代码
    [

全部评论 (0)

还没有任何评论哟~