网络安全|算法: 从上到下打印二叉树

网络安全|算法: 从上到下打印二叉树

文章图片

网络安全|算法: 从上到下打印二叉树

文章图片



从上到下按层打印二叉树 , 同一层的节点按从左到右的顺序打印 , 每一层打印到一行 。
示例给定二叉树: [3920nullnull157

3
/ \\
9 20
/ \\
15 7
返回其层次遍历结果:
[
[3

[920

[157



提示

  • 节点总数 <= 1000
方法:分层遍历+BFS
  • 特例处理:当树的根节点为空 , 则直接返回空列表
  • 初始化:初始返回的结果列表 , 并把根节点放入到队列中
  • 循环遍历:
  • 根据每层的叶子节点个数遍历 , 注意这有个细节就是“int i = queue.size()” , 因为节点出栈 , 节点的大小是可变的
  • 【网络安全|算法: 从上到下打印二叉树】节点出队
  • 添加到层集合中
  • 左/子节点非空时 , 入队 , 用于下层遍历
  • 本层遍历结束后 , 把层集合放入到结果列表中
  • 终止条件:返回结果列表
流程如下两个图所示 。


代码如下:

复杂度分析
  • 时间复杂度:O(n) , 叶子结点出队和入队一次 。
  • 空间复杂度:O(n) , 叶子结点的数量 。
END好兄弟可以点赞并关注我 , 全部都是干货 。
业精于勤荒于嬉 , 行成于思毁于随 , 赠友人 。