当前位置: 首页 > news >正文

Leetcode103 二叉树的锯齿形层序遍历

二叉树的锯齿形层序遍历

    • 题解1 层序遍历+双向队列

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

在这里插入图片描述
提示:

  • 树中节点数目在范围 [ 0 , 2000 ] [0, 2000] [0,2000]
  • -100 <= Node.val <= 100

题解1 层序遍历+双向队列

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {if(! root ) return vector<vector<int>>();deque<TreeNode*> dq;dq.push_back(root);int level = 0;vector<vector<int>> ret;while(dq.size()){int s = dq.size();int flag = level % 2;vector<int> res;while(s --){TreeNode* tmp = nullptr;if(! flag){tmp = dq.front();res.emplace_back(tmp->val);dq.pop_front();// 队列if(tmp->left) dq.push_back(tmp->left);if(tmp->right) dq.push_back(tmp->right);}else{tmp = dq.back();res.emplace_back(tmp->val);dq.pop_back();// 相当于栈if(tmp->right) dq.push_front(tmp->right);if(tmp->left) dq.push_front(tmp->left);}}level++;ret.emplace_back(res);}return ret;}
};

在这里插入图片描述

相关文章:

Leetcode103 二叉树的锯齿形层序遍历

二叉树的锯齿形层序遍历 题解1 层序遍历双向队列 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 提示&#xff1a…...

可观测性建设实践之 - 日志分析的权衡取舍

指标、日志、链路是服务可观测性的三大支柱&#xff0c;在服务稳定性保障中&#xff0c;通常指标侧重于发现故障和问题&#xff0c;日志和链路分析侧重于定位和分析问题&#xff0c;其中日志实际上是串联这三大维度的一个良好桥梁。 但日志分析往往面临成本和效果之间的权衡问…...

Ceres使用

之前用过Ceres&#xff0c;但是只是跑例程&#xff0c;现在来着重学习一下使用流程。 1. 解决的问题 主要解决非线性优化问题。Ceres是一个较为通用的库。 参考链接 2. 如何使用 这个是求解的函数&#xff0c;主要关注这三个参数 CERES_EXPORT void Solve(const Solver::O…...

深度学习第1天:深度学习入门-Keras与典型神经网络结构

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 神经网络 介绍 结构 基本要素 Keras 介绍 导入 定义网络 模型训练 前馈神经网络 特点 常见类型 代码示例 反馈神经网络 特点 …...

青云科技容器平台与星辰天合存储产品完成兼容性互认证

近日&#xff0c; 北京青云科技股份有限公司&#xff08;以下简称&#xff1a;青云科技&#xff09;的 KubeSphere 企业版容器平台成功完成了与 XSKY星辰天合的企业级分布式统一数据平台 V6&#xff08;简称&#xff1a;XEDP&#xff09;以及天合翔宇分布式存储系统 V6&#xf…...

谈谈基于Redis的分布式锁

目录 前言 基本介绍 演化过程 防死锁 防误删 自动续期 可重入 主从一致 总结 前言 在我们没有了解分布式锁前&#xff0c;使用最多的就是线程锁和进程锁&#xff0c;但他们仅能满足在单机jvm或者同一个操作系统下&#xff0c;才能有效。跨jvm系统&#xff0c;无法…...

逸学java【初级菜鸟篇】10.I/O(输入/输出)

hi&#xff0c;我是逸尘&#xff0c;一起学java吧 目标&#xff08;任务驱动&#xff09; 1.请重点的掌握I/O的。 场景&#xff1a;最近你在企业也想搞一个短视频又想搞一个存储的云盘&#xff0c;你一听回想到自己对于这些存储的基础还不是很清楚&#xff0c;于是回家开始了…...

【Python进阶笔记】md文档笔记第6篇:Python进程和多线程使用(图文和代码)

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 全套md格式笔记和代码自…...

基于Vue+SpringBoot的数字化社区网格管理系统

项目编号&#xff1a; S 042 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S042&#xff0c;文末获取源码。} 项目编号&#xff1a;S042&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 源码 & 项目录屏 二、功能模块三、开发背景四、系统展示五…...

【数据库设计和SQL基础语法】--数据库设计基础--数据建模与ER图

一、数据建模的基本概念 1.1. 数据模型的概念 数据模型是对现实世界中事物及其之间关系的一种抽象表示。它提供了描述数据结构、数据操作、数据约束等的方式&#xff0c;是数据库设计的基础。数据模型帮助我们理解数据之间的关系&#xff0c;提供了一种规范化的方式来组织和存…...

Vue3 设置点击后滚动条移动到固定的位置

需求&#xff1a; 点击不通过按钮&#xff0c;显示红框中表单&#xff0c;且滚动条滚动到底部 &#xff08;显示红框中表单默认不显示&#xff09; <el-button click"onApprovalPass">不通过</el-button> <div class"item" v-if"app…...

外部 prometheus监控k8s集群资源(pod、CPU、service、namespace、deployment等)

prometheus监控k8s集群资源 一&#xff0c;通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二&#xff0c;通过kube-state-metrics 监控k8s资源状态2.1 部署 kube-st…...

LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理

大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下&#xff0c;提示的复杂性不断增加&#xff0c;这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理&#xff0c;因此需要高效的解决方案&#xff0c;本文将介绍LLM…...

数据资产确权的难点

数据是企业的重要资产之一&#xff0c;但是许多企业对于这项资产在管理上都面临着一些挑战&#xff0c;其中最关键就是数据确权的问题。接下来&#xff0c;将探讨数据资产确权的难点&#xff0c;并提出相应的解决方案&#xff0c;一起来看吧。 首先介绍一下数据资产入表的背景以…...

EMG肌肉电信号处理合集(二)

本文主要展示常见的肌电信号特征的提取说明。使用python 环境下的Pysiology计算库。 目录 1 肌电信号第一次burst的振幅&#xff0c; getAFP 函数 2 肌电信号波长的标准差计算&#xff0c;getDASDV函数 3 肌电信号功率谱频率比例&#xff0c;getFR函数 4 肌电信号直方图…...

2023亚马逊云科技re:Invent引领科技新潮流:云计算与生成式AI共塑未来

2023亚马逊云科技re:Invent引领科技新潮流&#xff1a;云计算与生成式AI共塑未来 历年来&#xff0c;亚马逊云科技re:Invent&#xff0c;不仅是全球云计算从业者的年度狂欢&#xff0c;更是全球云计算领域每年创新发布的关键节点。 2023年亚马逊云科技re:Invent大会在美国拉斯…...

案例018:基于微信小程序的实习记录系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

视频剪辑技巧:如何高效批量转码MP4视频为MOV格式

在视频剪辑的过程中&#xff0c;经常会遇到将MP4视频转码为MOV格式的情况。这不仅可以更好地编辑视频&#xff0c;还可以提升视频的播放质量和兼容性。对于大量视频文件的转码操作&#xff0c;如何高效地完成批量转码呢&#xff1f;现在一起来看看云炫AI智剪如何智能转码&#…...

node.js获取unsplash图片

1. 在Unsplash的开发者页面注册并创建一个应用程序&#xff0c;以便获取一个API访问密钥&#xff08;即Access Key&#xff09;。 2. 安装axios&#xff1a; npm install axios3. 使用获取到的API密钥进行请求。 示例代码如下&#xff1a; const axios require(axios);con…...

Git远程库操作(GitHub)

GitHub 网址&#xff1a;https://github.com/ 创建远程仓库 远程仓库操作 命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 别…...

从一次‘Permission denied’错误讲起:手把手教你用chmod搞定Linux下各种文件的权限问题

从"Permission denied"到权限掌控&#xff1a;Linux文件权限实战指南 引子&#xff1a;一个常见错误的背后 那天下午&#xff0c;服务器监控突然报警——核心数据同步脚本停止运行了。我SSH登录到机器&#xff0c;尝试手动执行脚本&#xff0c;终端却冷冰冰地返回&am…...

终极Steam创意工坊下载器:WorkshopDL让非Steam用户也能畅玩模组

终极Steam创意工坊下载器&#xff1a;WorkshopDL让非Steam用户也能畅玩模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic Games Store或GOG平台购买了心仪的游戏…...

给5G核心网网元起外号:AMF是‘前台’,UPF是‘快递员’,这样理解就对了

5G核心网网元趣味解读&#xff1a;当技术术语变身职场角色 刚接触5G核心网时&#xff0c;面对AMF、SMF、UPF这些缩写字母组合&#xff0c;很多人会感到一头雾水。其实&#xff0c;这些看似冰冷的专业术语&#xff0c;完全可以对应到我们熟悉的职场角色。让我们用拟人化的方式&a…...

告别纯点SLAM的尴尬:手把手教你用PL-SLAM+LSD在弱纹理环境跑通第一个Demo

从ORB-SLAM2到PL-SLAM&#xff1a;弱纹理环境下的实战突围指南 当你在空旷的白色走廊调试ORB-SLAM2时&#xff0c;是否经历过跟踪突然丢失的挫败感&#xff1f;这种场景下&#xff0c;墙面缺乏足够的纹理特征点&#xff0c;传统基于点特征的SLAM系统就像被蒙住双眼的探险者。这…...

告别命令行!用Kafka Tool 2.0.4图形化界面管理Topic和消息的保姆级教程

告别命令行&#xff01;用Kafka Tool 2.0.4图形化界面管理Topic和消息的保姆级教程 你是否曾在深夜对着黑底白字的Kafka命令行界面抓狂&#xff1f;或是面对kafka-topics.sh和kafka-console-consumer.sh的复杂参数感到迷茫&#xff1f;今天&#xff0c;我们将彻底解放你的双手…...

SuperMap GIS处理BIM数据避坑指南:从模型检查到缓存生成的12个常见误区

SuperMap GIS处理BIM数据避坑指南&#xff1a;从模型检查到缓存生成的12个常见误区 在建筑信息模型&#xff08;BIM&#xff09;与地理信息系统&#xff08;GIS&#xff09;融合应用的实践中&#xff0c;许多工程师都会遇到这样的困惑&#xff1a;明明按照标准流程操作&#xf…...

STM32芯片“救砖”指南:当程序跑飞后,如何用STVP工具读取、擦除与恢复出厂设置

STM32芯片“救砖”实战&#xff1a;用STVP工具解锁异常状态的完整方案 当你的STM32开发板突然“罢工”&#xff0c;连最简单的程序都无法烧录时&#xff0c;那种绝望感每个嵌入式开发者都深有体会。芯片可能因为错误的选项字节配置、异常断电导致的Flash锁死&#xff0c;或是程…...

终极跨平台游戏串流方案:Sunshine自托管服务器完全指南

终极跨平台游戏串流方案&#xff1a;Sunshine自托管服务器完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾梦想过在任何设备上畅玩PC游戏&#xff1f;Sunshine作为…...

3步搞定!TranslucentTB中文界面终极设置指南:让你的Windows任务栏完美透明化

3步搞定&#xff01;TranslucentTB中文界面终极设置指南&#xff1a;让你的Windows任务栏完美透明化 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/Transluc…...

别再手动配置寄存器了!用TI的Pin Mux Tool和SysConfig搞定C2000 DSP引脚初始化(附F28388D实战)

告别寄存器配置&#xff1a;用TI图形化工具高效开发C2000 DSP 第一次接触C2000系列DSP开发时&#xff0c;最让我头疼的就是那些繁琐的寄存器配置。每个引脚的功能、复用选项、上下拉电阻设置&#xff0c;都需要逐一手动计算寄存器值。直到发现了TI的Pin Mux Tool和System Conf…...