代码随想录 Leetcode144/94/145 二叉树的前/中/后序遍历

题目:

前:

中:

后:


代码(首刷自解 2024年1月24日):

//前序遍历,递归
class Solution {
public:void funcOfRecursion(TreeNode* cur, vector<int>& vec) {if (cur == nullptr) return;vec.emplace_back(cur->val);funcOfRecursion(cur->left,vec);funcOfRecursion(cur->right,vec);}vector<int> preorderTraversal(TreeNode* root) {vector<int> vec = {};if (root == nullptr) return vec;funcOfRecursion(root,vec);return vec; }
};
//中序遍历,递归
class Solution {
public:void funcOfRecursion(TreeNode* cur,vector<int>& vec) {if(cur == nullptr) return;funcOfRecursion(cur->left,vec);vec.emplace_back(cur->val);funcOfRecursion(cur->right,vec);}vector<int> inorderTraversal(TreeNode* root) {vector<int> vec = {};if(root == nullptr) return vec;funcOfRecursion(root,vec);return vec;}
};
//后序遍历,递归
class Solution {
public:void funcOfRecursion(TreeNode* cur, vector<int>& vec) {if(cur == nullptr) return;funcOfRecursion(cur->left,vec);funcOfRecursion(cur->right,vec);vec.emplace_back(cur->val);}vector<int> postorderTraversal(TreeNode* root) {vector<int> vec = {};if(root == nullptr) return vec;funcOfRecursion(root,vec);return vec;}
};
//前序遍历,迭代
class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {vector<int> res = {};if(root == nullptr) return res;stack<TreeNode*> st;TreeNode* cur = root;st.push(cur);while (!st.empty()) {TreeNode* node = st.top();st.pop();res.emplace_back(node->val);if(node->right) st.push(node->right);if(node->left) st.push(node->left);}return res;}
};
//中序遍历,迭代
class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {vector<int> res = {};if(root == nullptr) return res;stack<TreeNode*> st;TreeNode* cur = root;while (!st.empty() || cur != NULL) {if (cur != nullptr) {st.push(cur);cur = cur -> left;} else {cur = st.top();res.emplace_back(cur->val);st.pop();cur = cur -> right;}}return res;}
};
//后序遍历 迭代
class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {vector<int> res = {};if(root == nullptr) return res;stack<TreeNode*> st;TreeNode* cur = root;st.push(cur);while (!st.empty()) {TreeNode* node = st.top();st.pop();res.emplace_back(node->val);if(node->left) st.push(node->left);if(node->right) st.push(node->right);}reverse(res.begin(),res.end());return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈谈 RocketMQ 5.0 分级存储背后一些有挑战的技术优化

作者&#xff1a;斜阳 RocketMQ 5.0 提出了分级存储的新方案&#xff0c;经过数个版本的深度打磨&#xff0c;RocketMQ 的分级存储日渐成熟&#xff0c;并成为降低存储成本的重要特性之一。事实上&#xff0c;几乎所有涉及到存储的产品都会尝试转冷降本&#xff0c;如何针对消…

自动化Web页面性能测试介绍

随着越来越多的用户使用移动设备访问 Web 应用&#xff0c;使得 Web 应用需要支持一些性能并不是很好的移动设备。为了度量和测试 Web 应用是不是在高复杂度的情况下&#xff0c;页面性能能满足用户的需求。 同时&#xff0c;随着 Web 应用的空前发展&#xff0c;前端业务逐渐…

插入排序

插入排序 概述步骤代码示例输出结果 概述 插入排序是一种最简单直观的排序算法&#xff0c;它的工作原理是通过创建有序序列和无序序列&#xff0c;然后再遍历无序序列得到里面每一个数字&#xff0c;把每一个数字插入到有序序列中正确的位置。 插入排序是一种简单直观的排序…

某马头条——day10

热文章数据查询 分布式任务调度xxl-job 概述 环境搭建 docker化部署 docker run -p 3306:3306 --name mysql57 \ -v /opt/mysql/conf:/etc/mysql \ -v /opt/mysql/logs:/var/log/mysql \ -v /opt/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORDroot\ -d mysql:5.7 dock…

尝试给docker ubuntu22.04镜像添加远程访问桌面

实在时不愿折腾&#xff0c;但是ubuntu 镜像没有桌面&#xff0c;有些操作实在太难受了&#xff0c;效率也不高。硬着头皮上吧。幸亏这是个docker的镜像。要是个虚拟机&#xff0c;这折腾来去&#xff0c;直接崩溃了。docker的好处就是立马就能从头来过&#xff0c;秒级的删除安…

分辨率 时钟频率 lane速率计算

PCLK: pixel clock(像素频率) 计算方法如下&#xff1a; 以1920x1080p/60hz为例&#xff0c;total pixel&#xff1a;2200&#xff0c;total line&#xff1a;1125&#xff0c;filed rate&#xff1a;60Hz&#xff0c;那么&#xff1a;PCLK 2200*1125*60 148.5MHz&#xff1b…

ATF(TF-A)安全通告TF-V11——恶意的SDEI SMC可能导致越界内存读取(CVE-2023-49100)

目录 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) 二、透过事务看本质SDEI是干啥的呢&#xff1f; 三、CVE-2023-49100 1、GICv2 systems 2、GICv3 systems 四、漏洞修复 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) Title 恶意的SDEI SMC可能导致越界内存读取&am…

Spring Security架构

文章目录 过滤器回顾DelegatingFilterProxyFilterChainProxySecurityFilterChainSecurity Filters打印Security Filters将自定义过滤器添加到过滤器链 Handling Security ExceptionsSaving Requests Between AuthenticationRequestCachePrevent the Request From Being Saved R…

《游戏-01_3D-开发》之—人物动画控制器

创建变量&#xff0c; 创建线&#xff0c; 连接&#xff0c; 选中线会变为蓝色&#xff0c;新增变量&#xff0c; 设置线&#xff0c; 双击子层进入子层&#xff0c; 创建变量&#xff0c; 双击SkillPanel 拖拽好之后返回上一层&#xff0c; 依次连接&#xff0c; 设置线&#…

[Tomcat] [从安装到关闭] MAC部署方式

安装Tomcat 官网下载&#xff1a;Apache Tomcat - Apache Tomcat 9 Software Downloads 配置Tomcat 1、输入cd空格&#xff0c;打开Tomca目录&#xff0c;把bin文件夹直接拖拉到终端 2、授权bin目录下的所有操作&#xff1a;终端输入[sudo chmod 755 *.sh]&#xff0c;回车 …

【GitHub项目推荐--不错的 Go 学习项目】【转载】

开源实时性能分析平台 Pyroscope 是基于 Go 的开源实时性能分析平台&#xff0c;在源码中添加几行代码 pyroscope 就能帮你找出源代码中的性能问题和瓶颈、CPU 利用率过高的原因&#xff0c;调用树展示帮助你理解程序&#xff0c;支持 Go、Python、Ruby 语言。 Pyroscope 可以…

k8s的图形化工具---rancher

rancher是一个开源的企业级多集群的k8s管理平台。 rancher和k8s的区别&#xff1a;都是为了容器的调度和编排系统。但是rancher不仅可以调度还可以管理整个k8s集群。 rancher自带监控(普罗米修斯) 实验部署 master01 20.0.0.32 node01 20.0.0.34 node02 20.0.0.35 test …

【Java Kubernates】Java调用kubernates提交Yaml到SparkOperator

背景 目前查询框架使用的是trino&#xff0c;但是trino也有其局限性&#xff0c;需要准备一个备用的查询框架。考虑使用spark&#xff0c;spark operator也已经部署到k8s&#xff0c;现在需要定向提交spark sql到k8s的sparkoperator上&#xff0c;使用k8s资源执行sql。 对比 …

linux安装docker--更具官网教程

1.访问https://docs.docker.com/ 2.进入download 3输入cento 或者直接访问地址Install Docker Engine on CentOS | Docker Docs 4一步一步根据官网命令走 2安装 3 4 方式一&#xff1a; service docker start&#xff08;开启&#xff09; service docker status&#xff08…

使用PowerShell命令行,批量修改文件编码

目录 ■前言 ■PowerShell命令 ■效果 ■前言 今天统计修改代码量&#xff0c;使用工具时&#xff0c;发现有些代码无法统计。 原因时UTF-8中有某些特殊字符&#xff0c;工具不能识别。 但是&#xff0c;如果把代码转换为SJIS格式&#xff0c;就能正常统计了。 因此&…

听筒及麦克风电路时序分析

打电话的时候。当没有免提的时候&#xff0c;用的是mic1&#xff0c;麦克风1居然是在J7尾插座子上&#xff0c;所以要把手机的下面贴近嘴巴。mic1的信号给到音频编解码u21&#xff0c;u21通过i2s线给cpu, 然后给基带cpu,然后通过射频发射出去。当要听声音的时候&#xff0c;射频…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时&#xff0c;构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据&#xff0c;需要确定满…

【软件测试】学习笔记-性能测试场景的分类

性能测试场景的重要程度类似于业务测试的 case&#xff0c;case 是你进行业务测试的指引&#xff0c;case 是否完善也直接决定了测试的覆盖率。同理&#xff0c;场景是传递执行性能测试的步骤和目的&#xff0c;关于这两点是你一定要清楚的。 首先认识下最重要的三个性能场景&…

Java项目:12 Springboot的垃圾回收管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 1.介绍 垃圾分类查询管理系统&#xff0c;对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾&#xff0c; 按国家标准自己分类&#x…

解读IP风险画像标签:深度洞察网络安全

在当今数字化的世界中&#xff0c;网络安全成为企业和个人关注的焦点。IP风险画像标签作为网络安全的利器&#xff0c;扮演着深度洞察网络风险的角色。本文将深入解读IP风险画像标签&#xff0c;揭示其在网络安全领域的重要性和功能。 1. IP风险画像标签是什么&#xff1f; I…