LeetCode Algorithm 103. 二叉树的锯齿形层序遍历
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. 二叉树的锯齿形层序遍历相关推荐
- Leetcode 103.二叉树的锯齿形层序遍历
难度:中等 频率:136 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 解题方法:改进的BPS[广度优先搜索] BP ...
- Leetcode 103. 二叉树的锯齿形层序遍历 (每日一题 20210924)
给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行).例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...
- 力扣题目——103. 二叉树的锯齿形层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...
- 【LeetCode】0103.二叉树的锯齿形层序遍历
题目要求 返回其节点值的锯齿形层序遍历(也就是,如果第一层遍历顺序时从左到右,第二次遍历顺序就要从右到左,依次类推) 图解示例 算法思想 方法一:使用广度优先搜索 + 调整结果 本题比较简单的办法就是 ...
- 【Leetcode】103. 二叉树的锯齿形层次遍历
题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- 【LeetCode】103# 二叉树的锯齿形层次遍历
题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], ...
- c++二叉树的层序遍历_leetcode 103. 二叉树的锯齿形层序遍历
按层次遍历,记录下对应节点的val和所在层,然后经过一定变换得到输出.python代码如下: # Definition for a binary tree node.# class TreeNode( ...
- 二叉树的锯齿形层序遍历
Leetcode:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode) (leetcode-cn.com) 还是层序遍历的问题,只不过这里需要注意层数,从而选择是正序访问还是倒序访问. 时间 ...
- LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...
最新文章
- 有6个候选人,100个选民,每个选民选择一个侯选人投票;从键盘输入每个选民选择的候选人名,统计并输出6个候选人的票数。java,c++实现
- #100天计划# 2013年10月1日
- 人工智能项目开发规划与准备
- eos交易同步过程和区块生产过程源码分析
- 大数据量Excel Import导致OOM问题
- brainfuck 在线_私有化部署,开源轻量级的团队在线协作工具——Kooteam
- 学Python就能做好数据分析?万能语言背后是一片韭菜地
- k2698场效应管参数电流_值得一观!场效应管 VS 三极管
- Python开心消消乐源代码
- ad中那个快捷键是重复上一部_Rhino快速建模(快捷键和快捷键的巨集的建立)...
- c语言鸽笼原理,技巧丨弄懂抽屉原理
- 应用商店安装ubantu_从 Play 商店下载 Android 应用安装文件 .apk
- Linux中etc目录详解大全总汇详解
- python如何画贝塞尔曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
- JavaScript基础知识总结 18:dom基本操作
- 一文openpose姿态估计
- 可汗学院”(Khan Academy)提出的考验智商的谜题
- 数字证书连接服务器异常,连接时Socket.io + SSL +自签名CA证书出现错误
- 比特币铺就通往个体主权之路
- html div 区域,div全称division,意为“区分”。div标签被称为区隔标签,表示一块可显示 HTML 的区域。DIV的主要属性有( )...
热门文章
- 开发Windows Mobile和Wince(Windows Embedded CE)的部署项目(Deploy Project)时,如何修改注册表...
- [十一]SpringBoot 之 添加JSP支持
- BZOJ 3237: [Ahoi2013]连通图
- FastJSON 简介及其Map/JSON/String 互转(转载)
- openquery基本运用实例
- 计算机图形学与相关学科的关系,哈尔滨工业2015博士招生计算机图形学与人机交互设计大纲...
- C语言入门题-是不是太胖了 (10分)
- 每日程序C语言33-打印杨辉三角
- java一维数组的特点,数据结构:java数组特点以及声明数组类
- 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .