Time: 20190830

题目描述

给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

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

    3/ \9  20/  \15   7

返回锯齿形层次遍历如下:

[[3],[20,9],[15,7]
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

和前面102题用DFS的解法相似,只需要判断一下level的值的奇偶性,就可以决定添加元素的走向。

题解

from collections import deque
class Solution:def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:res = []if not root:return resdef helper(node, level):if len(res) == level:res.append([])# 根据层号判断是直接在后面添加还是头插法if level % 2 == 0:res[level].append(node.val)else:res[level].insert(0, node.val)if node.left:helper(node.left, level + 1)if node.right:helper(node.right, level + 1)helper(root, 0)return res

END.

103.二叉树的锯齿形层次遍历:DFS解法相关推荐

  1. LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)

    103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...

  2. 103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历

    2020-05-24 1.题目描述 二叉树的锯齿形层次遍历 2.题解 对于层次遍历而言,就是广度优先,由于题目要求奇数层逆序,我们可以 1)使用双端队列,奇偶性不同,则出入队列方式不同. 2)对于偶数 ...

  3. 【Leetcode】103. 二叉树的锯齿形层次遍历

    题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...

  4. 【LeetCode】103# 二叉树的锯齿形层次遍历

    题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], ...

  5. 103. 二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3   ...

  6. LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)

    1. 题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7] ...

  7. leetcode 103. 二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \ ...

  8. Leetcode 103. 二叉树的锯齿形层次遍历 解题思路及C++实现

    解题思路: 因为是逐层的访问,在访问某一层的节点时,需要将其子节点push进栈,所以自然而然地想到用两个栈a和b.因为是锯齿形的访问顺序,所以,如果将根节点当做第一层,奇数层与偶数层的进栈区别在于:奇 ...

  9. LeetCode Algorithm 103. 二叉树的锯齿形层序遍历

    103. 二叉树的锯齿形层序遍历 Ideas 首先得理解二叉树的层序遍历,它类似于广度优先搜索,在当前层搜索的时候,遍历到的每一个节点都要把它的所有孩子节点都添加到队列中. 然后我们要锯齿形遍历,可以 ...

最新文章

  1. linux @webserviceclient 访问超时_Linux系统调优
  2. python numpy.savetxt(),np.column_stack保存(多行/列)数据 保存多维数组
  3. Android 获取当前日期距离过期时间的日期差值的完整方法直接使用
  4. 5G商用将在“十三五”时期内启动
  5. SQL Server 2000 安装中的“一般性网络错误”
  6. api接口rsa加密
  7. redis单主机多实例
  8. oracle 10G windows启动与关闭另类方法
  9. ubuntu18.10的header文件搜索路径
  10. SpringBoot 如何配置静态资源的地址与访问路径
  11. 【Siddhi】Siddhi 入门案例
  12. 仿souhu页面设计
  13. 黑马 Python学习笔记之第一个 Python 程序
  14. cmos逻辑门传输延迟时间_终于有人能把常用的三种电平:TTL、CMOS、RS232电平讲明白了...
  15. 最近穷疯了只好吃馒头
  16. 直播带货app源码,实现直播连麦和PK
  17. 推荐综述博客网址马克
  18. 数据库安全-分布式数据库-数据仓库技术-反规范化技术-大数据
  19. 90后黑客基地黑客小坤简介
  20. 职业测评让你更了解自己

热门文章

  1. Python for和if的连写
  2. 考会计中级职称能用计算机,2019年中级会计职称计算机考试操作常见问题答疑...
  3. java网络病毒,网络病毒是由因特网衍生出的新一代病毒,即Java及ActiveX病毒。由于(),因此不被人们察觉。...
  4. fedora nginx php,在fedora16下安裝nginx + php-fpm
  5. c语言第二章网上作业答案,c语言第二章课后习题答案
  6. 计算机硬盘哪里找到相关信息,获取计算机的信息(IP地址、MAC地址、CUP序列号、硬盘序列号、主板信息等等)...
  7. word把选择答案弄到题目里_怎样将word中后面的答案和题目合并到一起 - 卡饭网...
  8. mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
  9. df 命令查看磁盘空间_Linux df命令检查磁盘空间
  10. python设置环境变量_Python设置环境变量