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

【题解】二叉树的前中后遍历

文章目录

  • 二叉树的前序遍历
  • 二叉树的中序遍历
  • 二叉树的后序遍历

二叉树的前序遍历

题目链接:二叉树的前序遍历

解题思路1:递归

代码如下:

    void preorder(vector<int>& res, TreeNode* root){if(root == nullptr) return;//遇到空节点就返回res.push_back(root->val);//先遍历根节点preorder(res, root->left);//再遍历左子树preorder(res, root->right);//最后遍历右子树}vector<int> preorderTraversal(TreeNode* root) {vector<int> res;preorder(res, root);return res;}

解题思路2:辅助栈

代码如下:

    vector<int> preorderTraversal(TreeNode* root) {vector<int> res;if(root == nullptr) return res;stack<TreeNode*> s;s.push(root);while(!s.empty()){TreeNode* cur = s.top();res.push_back(cur->val);s.pop();if(cur->right) s.push(cur->right);if(cur->left) s.push(cur->left);}return res;}

二叉树的中序遍历

题目链接:二叉树的中序遍历

解题思路1:递归

代码如下:

    void inorder(vector<int>& res, TreeNode* root){if(root == nullptr) return;inorder(res, root->left);res.push_back(root->val);inorder(res, root->right);}vector<int> inorderTraversal(TreeNode* root) {vector<int> res;inorder(res, root);return res;}

解题思路2:辅助栈

代码如下:

    vector<int> inorderTraversal(TreeNode* root) {vector<int> res;stack<TreeNode*> s;while(root!=nullptr || !s.empty()){//每次找到最左节点while(root != nullptr){s.push(root);root = root->left;}//访问该节点TreeNode* cur = s.top();res.push_back(cur->val);s.pop();//进入右节点root = cur->right;}return res;}

二叉树的后序遍历

题目链接:二叉树的后序遍历

解题思路1:递归

代码如下:

    void postorder(vector<int>& res, TreeNode* root) {if (root == nullptr) return;postorder(res, root->left);postorder(res, root->right);res.push_back(root->val);}vector<int> postorderTraversal(TreeNode* root) {vector<int> res;postorder(res, root);return res;}

解题思路2:辅助栈

代码如下:

    vector<int> postorderTraversal(TreeNode* root) {vector<int> res;stack<TreeNode*> s;TreeNode* pre = nullptr;while(root!=nullptr || !s.empty()){//找到最左边的节点while(root != nullptr){s.push(root);root = root->left;}TreeNode* cur = s.top();s.pop();if(cur->right==nullptr || cur->right == pre){res.push_back(cur->val);pre = cur;}else{s.push(cur);root = cur->right;}}return res;}

相关文章:

【题解】二叉树的前中后遍历

文章目录 二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历 二叉树的前序遍历 题目链接&#xff1a;二叉树的前序遍历 解题思路1&#xff1a;递归 代码如下&#xff1a; void preorder(vector<int>& res, TreeNode* root){if(root nullptr) return;//遇到空节点…...

文件操作/IO

文件 文件是一种在硬盘上存储数据的方式&#xff0c;操作系统帮我们把硬盘的一些细节都封装起来了&#xff0c;程序员只需要了解文件相关的接口即可&#xff0c;相当于操作文件就是间接的操作硬盘了 硬盘用来存储数据&#xff0c;和内存相比硬盘的存储空间更大&#xff0c;访问…...

基于Java+SpringBoot+vue前后端分离共享汽车管理系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

Mac RN环境搭建

RN ios android原生环境搭建有时候是真恶心&#xff0c;电脑环境不一样配置也有差异。 我已经安装官网的文档配置了ios环境 执行 npx react-nativelatest init AwesomeProject 报错 然后自己百度查呀执行 gem update --system 说是没有权限&#xff0c;执行失败。因为Mac…...

log4j教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Log4j是Apache的一个开源项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输送的目的地是控制台、文件、GUI组件&#xff0c;甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等&#xff1b;我们也可以控制每一条日志的输出格式&#xff1b;…...

DP——背包问题

DP——背包问题 01背包问题分数背包问题多重背包问题完全背包问题 当我们谈论背包问题时&#xff0c;可以想象成一个小朋友要去旅行&#xff0c;但是他只能带一个容量有限的背包。他有一些物品可以选择放入背包&#xff0c;每个物品都有自己的重量和价值。小朋友的目标是在不超…...

【从零学习python 】29. 「函数参数详解」——了解Python函数参数的不同用法

文章目录 函数参数详解一、缺省参数二、不定长参数三、缺省参数在*args后面可变、不可变类型总结 进阶案例 函数参数详解 一、缺省参数 调用函数时&#xff0c;缺省参数的值如果没有传入&#xff0c;则取默认值。 下例会打印默认的age&#xff0c;如果age没有被传入&#xf…...

10个经典战略分析模型,助力洞察市场明确优势

在企业的经营管理过程中&#xff0c;要时刻清晰内外部环境和自身的优劣势&#xff0c;做好企业略规划&#xff0c;进行企业内外部资源的分析&#xff0c;对经营环境&#xff0c;企业核心竞争力有足够的判断&#xff0c;才能明确企业的发展方向。本文为大家分享10个常用的战略分…...

C++(Qt)软件调试---将调试工具安装到AeDebug(11)

C(Qt)软件调试—将调试工具安装到AeDebug&#xff08;11&#xff09; 文章目录 C(Qt)软件调试---将调试工具安装到AeDebug&#xff08;11&#xff09;1、前言1.1 使用的调试工具 2、调试器安装1.1 WinDbg1.2 procdump1.3 DrMinGW1.4 vsjitdebugger 更多精彩内容&#x1f449;个…...

浅谈限流式保护器在住宅电气防火的应用

安科瑞 华楠 【摘要】随着人民生活水平的提高&#xff0c;家用大功率电器普遍被使用&#xff0c;导致用电量剧增&#xff0c;电气火灾频发。文章分析了电气火灾发生的原因&#xff0c;并时电气火灾的防范措施进行了探讨。 【关键词】电气火灾&#xff1b;原因&#xff1b;防范…...

ChatGPT助力ModStartBlog,博客写作更智能

ModStartBlog v7.1.0&#xff0c;ChatGPT 支持、界面全新优化 在数字化时代&#xff0c;博客已经成为人们分享知识、表达观点和建立个人品牌的重要工具。ModStartBlog是一款流行的博客平台&#xff0c;其最新的版本v7.1.0不仅增加了ChatGPT支持&#xff0c;还对界面进行了全新…...

Jpa与Druid线程池及Spring Boot整合(二): spring-boot-starter-data-jpa 踏坑异常处理方案

Jpa与Druid线程池及Spring Boot整合(一) Jpa与Druid线程池及Spring Boot整合(二)&#xff1a;几个坑 附录官网文档&#xff1a;core.domain-events域事件 从聚合根发布事件 存储库管理的实体是聚合根。在领域驱动设计应用程序中&#xff0c;这些聚合根通常会发布领域事件。Sp…...

Vue3组件库

Vue组件库 ViteVue3TypescriptTSX 1、项目搭建 1.1、创建项目&#xff08;yarn&#xff09; D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh pa…...

AUTOSAR从入门到精通-【应用篇】基于 CAN/LIN 总线的智能配电监控系统的研究设计

目录 前言 国内外研究现状 CAN 总线和 LIN 总线技术 2.1CAN 总线技术 2.1.1 通信模型...

数据安全服务能力评定资格证书-申请流程

数据安全服务能力评定&#xff08;以下简称能力评定&#xff09;是指对数据安全服务提供商从事数据安全服务综合能力的评定&#xff0c;包括技术能力、服务能力、质量保证能力、人员构成与素质、经营业绩、资产状况等要素。 用于对中华人民共和国境内的数据安全服务提供商提供…...

用js快速生成一个简单的css原子库 例如: .mr-18 .pl-18

第三方css原子库的缺点 比如 tailwindcss&#xff0c;有学习成本最开始写的时候效率可能还没有我们自己手写效率高&#xff0c;需要配置&#xff0c;会有原始样式被覆盖的问题&#xff1b;总之就是一个字重 自己搓的优点 学习成本低灵活不会有副作用 <!DOCTYPE html>…...

Java鹰眼轨迹服务 轻骑小程序 运动健康与社交案例

Java地图专题课 基本API BMapGLLib 地图找房案例 MongoDB 百度地图鹰眼轨迹服务 鹰眼轨迹服务概述 鹰眼是一套轨迹管理服务&#xff0c;提供各端SDK和API供开发者便捷接入&#xff0c;追踪所管理的车辆/人员等运动物体。 基于鹰眼提供的接口和云端服务&#xff0c;开发者可以迅…...

【产品经理】微信小程序隐私保护指引

为了分辨用户&#xff0c;开发者将在获取你的明示同意后&#xff0c;收集你的微信昵称、头像。 为了显示距离&#xff0c;开发者将在获取你的明示同意后&#xff0c;收集你的位置信息。 开发者收集你的地址&#xff0c;用于获取位置信息。 开发者收集你的发票信息&#xff0…...

springboot创建websocket服务端

springboot创建websocket服务端 1.配置类 package com.neusoft.airport.websocket;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndp…...

网络安全攻防实战:探索互联网发展史

大家好&#xff0c;我是沐尘而生。 互联网发展史&#xff1a;数字世界的壮阔画卷 从早期的ARPANET到今天的万物互联&#xff0c;互联网经历了漫长的发展过程。然而&#xff0c;随着技术的进步&#xff0c;网络安全问题也随之而来。我们不仅要探索互联网的壮阔历程&#xff0c;…...

Cursor Free VIP:终极解决方案,5步实现Cursor Pro永久免费使用

Cursor Free VIP&#xff1a;终极解决方案&#xff0c;5步实现Cursor Pro永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: You…...

DeepSeek工具调用能力深度评测(实测12类插件+8种LLM上下文窗口下的成功率与延迟数据)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek工具调用能力概览与评测方法论 DeepSeek系列大模型&#xff08;如DeepSeek-V2、DeepSeek-Coder&#xff09;原生支持结构化工具调用&#xff08;Tool Calling&#xff09;&#xff0c;其核心机制基于J…...

行人动力学新视角:用速度、密度、避免数与侵入数量化交叉人流行为

1. 项目概述&#xff1a;当行人流交汇时&#xff0c;我们如何“看懂”人群&#xff1f;想象一下早高峰的地铁换乘通道&#xff0c;或是大型演唱会散场时的十字路口。两股、甚至多股人流以不同的角度交汇、穿插、最终分离。作为城市管理者或空间设计师&#xff0c;你可能会问&am…...

SLUSCHI+LAMMPS+LASP:机器学习势函数加速材料熔点高通量计算

1. 项目概述&#xff1a;当SLUSCHI遇见机器学习势函数在计算材料学的日常工作中&#xff0c;预测材料的熔点一直是个既关键又让人头疼的活。说它关键&#xff0c;是因为熔点直接关联着材料的加工性、热稳定性和服役性能&#xff0c;无论是设计下一代高温合金还是开发新型陶瓷&a…...

WebPlotDigitizer完整指南:如何从图表图像中快速提取精准数据

WebPlotDigitizer完整指南&#xff1a;如何从图表图像中快速提取精准数据 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾经面…...

K210开发板固件烧录终极指南:kflash_gui完全使用手册

K210开发板固件烧录终极指南&#xff1a;kflash_gui完全使用手册 【免费下载链接】kflash_gui Cross platform GUI wrapper for kflash.py (download(/burn) tool for k210) 项目地址: https://gitcode.com/gh_mirrors/kf/kflash_gui 你是否正在为K210开发板固件烧录而烦…...

Thorium浏览器:基于Chromium的终极性能优化与隐私保护深度解析

Thorium浏览器&#xff1a;基于Chromium的终极性能优化与隐私保护深度解析 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the to…...

ncmdump解密技术:突破NCM音频格式加密限制的完整解决方案

ncmdump解密技术&#xff1a;突破NCM音频格式加密限制的完整解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字音乐生态系统中&#xff0c;格式兼容性始终是技术爱好者面临的核心挑战之一。网易云音乐采用的NCM&#xf…...

Frida Hook Java层还原Android客户端签名算法

1. 这不是“调用API”&#xff0c;而是拆解签名生成的完整逻辑链 你有没有遇到过这种情况&#xff1a;App每次请求都带一个叫 api-sign 的字段&#xff0c;值像一串随机字符串&#xff0c;长度固定、格式规整&#xff0c;但无论你怎么翻网络请求日志、抓包重放、甚至改参数重…...

JMeter并发与持续性压测:从按钮操作到系统心跳诊断

1. 这不是“点几下就出报告”的玩具&#xff0c;而是压测工程师的听诊器很多人第一次打开 JMeter&#xff0c;以为它就是个高级版的 Postman&#xff1a;填个 URL、点个“启动”&#xff0c;等几秒弹出个 Summary Report&#xff0c;看到平均响应时间 86ms 就松一口气&#xff…...