题目描述

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

思路

详见链接

代码

class Solution:def levelOrder(self,root:TreeNode)->List[List[int]]:if not root:return []res, queue = [],collections.deque()queue.append(root)while queue:tmp = []for _ in range(len(queue)):node = queue.popleft()tmp.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)res.append(tmp[::-1] if len(res) % 2 == 0 else tmp)return res

剑指offer面试题32 - III. 从上到下打印二叉树 III(二叉树)(BFS)相关推荐

  1. 剑指Offer - 面试题32 - I. 从上到下打印二叉树(按层BFS遍历,queue)

    1. 题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回: [3,9 ...

  2. 剑指offer面试题32 - I. 从上到下打印二叉树(二叉树)(BFS)

    题目描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 思路 详见链接 代码 class Solution:def levelOrder(self, root:TreeNode ...

  3. 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)

    题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 思路 详见链接 代码 class Solution:def levelOrder(self,root:TreeN ...

  4. 剑指offer——面试题23:从上往下打印二叉树

    剑指offer--面试题23:从上往下打印二叉树 Solution1: 典型的BFS算法! 思路一开始没想到,按照书上的思路写的答案... 注意:deque是双向队列,在头尾插入都很快! /* str ...

  5. [剑指offer]面试题23:从上往下打印二叉树

    面试题23:从上往下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树结点的定义如下 ...

  6. 剑指offer面试题23:从上到下打印二叉树(树的层序遍历)

    题目:从上往下打印出二叉树的每个节点,同一层的结点按照从左往右的顺序打印. 解题思路:二叉树的层序遍历,在打印一个节点的时候,要把他的子节点保存起来打印第一层要把第二层的节点保存起来, 打印第二层要把 ...

  7. 剑指offer(Java实现) 从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 利用队列(链表)辅助实现. 代码实现 import java.util.ArrayList; import java.uti ...

  8. 剑指offer二十二之从上往下打印二叉树

    一.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 二.思路 二叉树的层次遍历,可以借助队列实现.具体思路详见注释. 三.代码 import java.util.ArrayList; i ...

  9. 剑指offer——面试题32:从1到n整数中1出现的次数

    剑指offer--面试题32:从1到n整数中1出现的次数 Solution1: 最容易想到的方法: class Solution { public:int NumberOf1Between1AndN_ ...

  10. 剑指offer——面试题61:按之字形顺序打印二叉树

    剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...

最新文章

  1. 遗传算法的收敛性分析
  2. C语言从文件中读入矩阵,并且将矩阵转置
  3. php鼠标悬停字体变大代码CS6,Dreamweaver cs6设置代码字体大小的方法
  4. 单片机c语言程序设计叶俊明,单片机C语言程序设计
  5. Pythonic---------详细讲解
  6. 德勤发布2020技术趋势报告,五个新趋势可引发颠覆性变革
  7. 使用神经网络自动提取出它的特征码(1)
  8. smb文件共享_使用SMB文件共享作为存储替代方案
  9. 关于WORD VBA学习使用心得
  10. [树状数组模板] 洛谷P3368
  11. python3lde下载_Python3.4IDE软件下载_Python3.4IDEAPP_Python3.4IDE手机版官方下载_Python3.4IDE1.8-华军软件园...
  12. ajax 后面接什么,什么是AJAX?
  13. emule服务器有响应,eMule刚连上服务器就断请教为什么
  14. 【Android Broadcast】BroadcastReceiver
  15. Understand教程—使用搜索功能的几种方法
  16. 专业的web打印插件
  17. 利用Hudi Bootstrap转化现有Hive表的parquet/orc文件为Hudi表
  18. mysql applier_DRC 是唯品会自研的MySQL双向复制方案,主要应用场景是数据库双向复制、单向复制...
  19. ios 9 10 11 air mirror 交互协议
  20. Excel,python全都靠边站,这才是数据分析应该有的样子

热门文章

  1. 还在头痛被黑客劫持? 五步帮你摆脱烦恼!
  2. php极速链,php PHP极速链 战群源码系列(全自动采集更新+引流神器无数据库版) WEB(ASP,PHP,...) 261万源代码下载- www.pudn.com...
  3. matlab m语言电路仿真,基于Matlab的TFT-LCD解码电路的仿真设计(含程序)
  4. 介绍Linux系统如何初始化和启动系统服务的
  5. java项目连接jboss中数据库_月光软件站 - 编程文档 - Java - JBOSS3.2.5中MYSQL数据库连接池的建立与测试...
  6. gpu跑普通python程序_普通电脑PC怎样跑TensorFlow的GPU模式
  7. 荔枝糖FPGA开发板相关博客
  8. C++ std:: 的坑
  9. kindeditor php配置,KindEditor-编辑器配置参数属性 | 小灰灰博客
  10. html中模板引擎—前端与后端