(迭代法)145. 二叉树的后序遍历

news/2024/2/27 9:43:32

原题链接:(迭代法)145. 二叉树的后序遍历

思路是跟迭代法前序遍历一样的
但是要注意,需要交换入栈顺序
遵循入栈先进后出原则,迭代法的前序顺序是中右左,而后序是中左右,这一点是跟递归的前序后序顺序相反的
最后要把result容器内的值反转一下 就是迭代法后续遍历的值

全代码:

class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {stack<TreeNode*> stackA;vector<int> result;stackA.push(root);while(!stackA.empty()){TreeNode* Node = stackA.top();stackA.pop();if(Node == NULL) continue;result.push_back(Node ->val);//相比于前序,后续需要更改下入栈顺序,先进后出//所以迭代法前序入栈应该是中右左,后序应该是中左右,这一点是跟递归相反的stackA.push(Node ->left);stackA.push(Node ->right);}reverse(result.begin(),result.end());return result;}
};

http://www.ppmy.cn/news/1210838.html

相关文章

【图论实战】Boost学习 02:基本类型

/* 顶点 */ // 描述 typedef boost::graph_traits < graph_t >::vertex_descriptor vertex_descriptor; // 迭代器方式一&#xff1a;vp中的一对迭代器分别指向第一个顶点和最后的一个顶点之后 typedef boost::graph_traits < graph_t >::vertex_iterator vi…

同一台Linux同时安装MYSQL5.7和MYSQL8(第一篇)

在一台Linxu上面同时安装mysql5.7和mysql8.0的步骤&#xff0c;记录一下&#xff0c;方便后续回顾&#xff0c;后续文章之后会接着介绍搭建两台虚拟机一主一从的架构。 其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。 安装完成后效果 [rootzong…

【C++】C++11常用特性梳理

C11特性梳理 1. 列表初始化2. auto & decltype3. 右值引用3.1. 左右值引用比较3.2. 右值引用的意义3.3. 万能引用与完美转发3.4. 移动构造与移动赋值 4. default & delete5. 可变参数模板6. push_back 与 emplace_back7. lambda表达式7.1. 捕捉列表 8. function包装器8…

Centos7安装PostgreSQL 14

环境&#xff1a; Centos7安装PostgreSQL_14版本数据库&#xff1b; 打开官方网站&#xff1a;PostgreSQL: Linux downloads (Red Hat family) 一、 版本选择 复制、粘贴并运行如下脚本&#xff1a; 二、安装步骤 这些命令是在 CentOS 7.x 系统上安装和配置 PostgreSQL 14 的步…

php使用正则表达式和翻译字典json文件做翻译

需求&#xff1a;把页面中的中文翻译成越南文。 思路&#xff1a;在框架渲染页面的地方&#xff08;这个地方能获取到页面渲染后的所有html数据&#xff0c;设为$str&#xff09;&#xff0c;使用以下方法。 //翻译中文 读取json文件&#xff0c;使用正则表达式替换中文 publi…

【Git】如何安装git,项目中使用git上传到远程仓库,使用git中对多人使用出现的版本问题的解决

前言&#xff1a; 一&#xff0c;Git的介绍&#xff0c;安装&#xff0c;与SVN的对比 1.1Git的介绍 Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控…

安全易用的文件同步程序:Syncthing | 开源日报 No.70

syncthing/syncthing Stars: 55.0k License: MPL-2.0 Syncthing 是一个持续文件同步程序&#xff0c;它在两台或多台计算机之间同步文件。该项目的主要功能和核心优势包括&#xff1a; 安全防止数据丢失抵御攻击易于使用自动化操作&#xff0c;仅在必要时需要用户交互适合在各…

Linux:权限篇 (彻底理清权限逻辑!)

shell命令以及运行原理&#xff1a; Linux严格意义上说的是一个操作系统&#xff0c;我们称之为“核心&#xff08;kernel&#xff09;“ &#xff0c;但我们一般用户&#xff0c;不能直接使用kernel。而是通过kernel的“外壳”程序&#xff0c;也就是所谓的shell&#xff0c;来…

图论10-哈密尔顿回路和哈密尔顿路径+状态压缩+记忆化搜索

文章目录 1 哈密尔顿回路2 哈密尔顿回路算法实现2.1 常规回溯算法2.2 引入变量记录剩余未访问的节点数量 3 哈密尔顿路径问题4 状态压缩4.1 查看第i位是否为14.2 设置第i位是为1或者04.3 小结4.4 状态压缩在哈密尔顿问题中的应用 5 记忆化搜索5.1 记忆化搜索与递推区别5.2 记忆…

【读点论文】结构化剪枝

结构化剪枝 在一个神经网络模型中&#xff0c;通常包含卷积层、汇合层、全连接层、非线形层等基本结构&#xff0c;通过这些基本结构的堆叠&#xff0c;最终形成我们所常用的深度神经网络。 早在 1998 年&#xff0c;LeCun 等人使用少数几个基本结构组成 5 层的 LeNet-5 网络&…

MyBatis Plus—CRUD 接口

Service CRUD 接口 说明: 通用 Service CRUD 封装IService (opens new window)接口&#xff0c;进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆&#xff0c;泛型 T 为任意实体对象建议如果存在自定义通用 Servi…

Python 实现动态动画心形图

在抖音上刷到其他人用 matlab 实现的一个动态心形图&#xff0c;就想也用 Python 实现&#xff0c;摸索了两种实现方式&#xff0c;效果如下&#xff1a; 方法一&#xff1a; 利用循环&#xff0c;结合 pyplot 的 pause 与 clf 参数实现图像的动态刷新 import matplotlib.p…

centos的docker镜像下载ffmpeg的方式

ffmpeg是业界比较好用的开源的音频处理工具&#xff0c;当我们在实际业务中使用ffmpeg的时候&#xff0c;直接使用yum安装回提示找不到ffmpeg的包&#xff0c;遇到这种情况&#xff0c;可以通过以下方式来进行安装&#xff08;docker环境&#xff09;。 已经拥有镜像 更新源 …

SPSS:卡方检验(交叉表)

第一步 打开SPSS软件&#xff0c;在工具栏中选中【打开-文件-数据】&#xff0c;然后选择一份要打开的数据表(如图所示)。 第二步 在工具栏中找到【分析-描述统计-交叉表】打开交叉表对话框(如图所示)。 第三步 接着将【行-列】相关变量放在对应对话框中(如图所示)。 第四步 在…

秋招求职经验分享

0.个人简介 2023年10月底&#xff0c;最终拿到了海康威视、汇川技术等十余家公司的Offer&#xff0c;最终签了自己心仪的Offer&#xff0c;秋招对我来说算是正式结束了&#xff0c;写个博客纪念一下&#xff0c;顺便分享以下秋招的经验&#xff0c;为后来人求职提供一些参考。…

PROFINET和UDP、MODBUS-RTU通信速度对比实验

这篇博客我们介绍PROFINET 和MODBUS-RTU通信实验时的数据刷新速度,以及这种速度不同对控制系统带来的挑战都有哪些,在介绍这篇对比实验之前大家可以参考下面的文章链接: S7-1200PLC和SMART PLC的PN智能从站通信 S7-200 SMART 和 S7-1200PLC进行PROFINET IO通信-CSDN博客文…

顺序图——画法详解

百度百科的定义&#xff1a; 顺序图是将交互关系表示为一个二维图。纵向是时间轴&#xff0c;时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时&#xff0c;角色用一条虚线表示&#xff0c;当对象的过程处于激活状态时&…

最简WebClient 同步、异步调用示例

目录 一&#xff0c;序言二&#xff0c;简单示例1. 引入依赖2. 日志配置3. 调用代码4. 运行结果 三&#xff0c;完整代码 一&#xff0c;序言 WebClient是Spring WebFlux模块提供的一个非阻塞的基于响应式编程的进行Http请求的客户端工具&#xff0c;从Spring5.0开始WebClient…

Vue3 源码解读系列(一)——Vue3的优化

Vue3 对比 Vue2 的优化 源码优化 使用 monorepo 管理代码 将各模块拆分到不同的 package 中&#xff0c;每个 package 有各自的 API、类型定义和测试&#xff0c;使得模块拆分更加细化&#xff0c;模块之间的依赖也更加明确。 使用 TypeScript 开发代码 相比 Vue2 使用 flow 的…

银行卡转账记录p图软件,建设邮政工商招商农业,易语言回执单生成开发!

花了好长时间设计出来了这么一个软件&#xff0c;当然各个功能我都做了防范处理界面还有生成的图片都有对应的水印提示&#xff0c;做不了啥坏事&#xff0c;这里就是分享下原理和代码还有运行逻辑&#xff0c;仅此而已&#xff0c;软件加了一个画板&#xff0c;画面上面的图片…
最新文章