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

Ideas

首先得理解二叉树的层序遍历,它类似于广度优先搜索,在当前层搜索的时候,遍历到的每一个节点都要把它的所有孩子节点都添加到队列中。

然后我们要锯齿形遍历,可以定义一个order变量,如果为True表示从左往右遍历,如果为False表示从右往左遍历,每次遍历完取反。

Code

Python

from collections import deque
from typing import List# Definition for a binary tree node.
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightclass Solution:def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:if not root:return []queue = deque()queue.append(root)order, ans = True, []while queue:level = []for i in range(len(queue)):node = queue.popleft()level.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)ans.append(level if order else level[::-1])order = not orderreturn ans

LeetCode Algorithm 103. 二叉树的锯齿形层序遍历相关推荐

  1. Leetcode 103.二叉树的锯齿形层序遍历

    难度:中等 频率:136 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 解题方法:改进的BPS[广度优先搜索] BP ...

  2. Leetcode 103. 二叉树的锯齿形层序遍历 (每日一题 20210924)

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

  3. 力扣题目——103. 二叉树的锯齿形层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...

  4. 【LeetCode】0103.二叉树的锯齿形层序遍历

    题目要求 返回其节点值的锯齿形层序遍历(也就是,如果第一层遍历顺序时从左到右,第二次遍历顺序就要从右到左,依次类推) 图解示例 算法思想 方法一:使用广度优先搜索 + 调整结果 本题比较简单的办法就是 ...

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

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

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

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

  7. c++二叉树的层序遍历_leetcode 103. 二叉树的锯齿形层序遍历

    按层次遍历,记录下对应节点的val和所在层,然后经过一定变换得到输出.python代码如下: # Definition for a binary tree node.# class TreeNode( ...

  8. 二叉树的锯齿形层序遍历

    Leetcode:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode) (leetcode-cn.com) 还是层序遍历的问题,只不过这里需要注意层数,从而选择是正序访问还是倒序访问. 时间 ...

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

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

最新文章

  1. 有6个候选人,100个选民,每个选民选择一个侯选人投票;从键盘输入每个选民选择的候选人名,统计并输出6个候选人的票数。java,c++实现
  2. #100天计划# 2013年10月1日
  3. 人工智能项目开发规划与准备
  4. eos交易同步过程和区块生产过程源码分析
  5. 大数据量Excel Import导致OOM问题
  6. brainfuck 在线_私有化部署,开源轻量级的团队在线协作工具——Kooteam
  7. 学Python就能做好数据分析?万能语言背后是一片韭菜地
  8. k2698场效应管参数电流_值得一观!场效应管 VS 三极管
  9. Python开心消消乐源代码
  10. ad中那个快捷键是重复上一部_Rhino快速建模(快捷键和快捷键的巨集的建立)...
  11. c语言鸽笼原理,技巧丨弄懂抽屉原理
  12. 应用商店安装ubantu_从 Play 商店下载 Android 应用安装文件 .apk
  13. Linux中etc目录详解大全总汇详解
  14. python如何画贝塞尔曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
  15. JavaScript基础知识总结 18:dom基本操作
  16. 一文openpose姿态估计
  17. 可汗学院”(Khan Academy)提出的考验智商的谜题
  18. 数字证书连接服务器异常,连接时Socket.io + SSL +自签名CA证书出现错误
  19. 比特币铺就通往个体主权之路
  20. html div 区域,div全称division,意为“区分”。div标签被称为区隔标签,表示一块可显示 HTML 的区域。DIV的主要属性有(     )...

热门文章

  1. 开发Windows Mobile和Wince(Windows Embedded CE)的部署项目(Deploy Project)时,如何修改注册表...
  2. [十一]SpringBoot 之 添加JSP支持
  3. BZOJ 3237: [Ahoi2013]连通图
  4. FastJSON 简介及其Map/JSON/String 互转(转载)
  5. openquery基本运用实例
  6. 计算机图形学与相关学科的关系,哈尔滨工业2015博士招生计算机图形学与人机交互设计大纲...
  7. C语言入门题-是不是太胖了 (10分)
  8. 每日程序C语言33-打印杨辉三角
  9. java一维数组的特点,数据结构:java数组特点以及声明数组类
  10. 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .