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

【leetcode热题】二叉树的前序遍历

  • 难度: 中等
  • 通过率: 49.5%
  • 题目链接:. - 力扣(LeetCode)

题目描述

给定一个二叉树,返回它的 前序 遍历。

 示例:

输入: [1,null,2,3]  1\2/3 输出: [1,2,3]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

递归解法:

class Solution {public:vector<int> inorderTraversal(TreeNode* root){vector<int> res;traversal(root, res);return res;}void traversal(TreeNode *node, vector<int>& res) {if (!node){return;}res.push_back(node->val);traversal(node->left, res);traversal(node->right, res);}
};

基于栈的解法

观察递归解法,递归调用的第一层就访问 node->val,而后遍历 node->left,而 node->right 是保存在调用栈上的,因此在迭代的写法中,需要将 node->right 保存在栈里。

class Solution {public:vector<int> preorderTraversal(TreeNode *root) {vector<int> res;stack<TreeNode*> stk;if(root){stk.push(root);}while(!stk.empty()){TreeNode *node = stk.top();stk.pop();while(node){res.push_back(node->val);if(node->right){stk.push(node->right);}node = node->left;}}return res;}
};

相关文章:

【leetcode热题】二叉树的前序遍历

难度&#xff1a; 中等通过率&#xff1a; 49.5%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个二叉树&#xff0c;返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1\2/3 输出: [1,2,3]进阶: 递归算法很简单&#xff0c;你可以通过迭代…...

Linux命令记不住?保姆级教程来了

在软件开发过程中&#xff0c;Linux操作系统因其稳定性、安全性和高效性而备受青睐。作为开发者&#xff0c;熟练掌握Linux常用命令&#xff0c;不仅可以提高工作效率&#xff0c;还能更好地管理服务器和进行代码部署。本文将介绍一些开发常用的Linux命令及其应用场景&#xff…...

基于GitBucket的Hook构建ES检索PDF等文档全栈方案

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo&#xff0c;预期建设方案是使用触发器类型从公共的文档源拉取最新的文件&#xff0c;然后调用Java将文件转Base64后入ES建索引&#xff0c;再提供封装接口给前端做查询之用。 由于全部内容过长&#xff…...

C语言:数组、字符串知识点整理:

数组&#xff1a;&#xff08;长度的计算&#xff09; 补充&#xff1a;数组长度sizeof(arr)/sizeof(arr[0]) 注意&#xff1a;&#xff01;&#xff01;&#xff01;不适用于当arr 充当形参时&#xff08;函数传参&#xff09;&#xff01;&#xff01;&#xff01; 因为函数…...

Linux mmap系统调用

文章目录 前言一、mmap()函数简介二、代码演示2.1 mmap使用场景2.2 私有匿名映射2.3 私有文件映射2.4 共享匿名映射2.5 共享文件映射 参考 前言 NAMEmmap, munmap - map or unmap files or devices into memorySYNOPSIS#include <sys/mman.h>void *mmap(void *addr, siz…...

VSCode搭建ARM开发环境

为了构建Cortex M系列单片机免费开源的开发环境&#xff0c;网络上了解来看VSCODEGCCJLINK是一套比较高效的组合方式&#xff0c;下面记录环境搭建的流程。 我这边的PC环境为 WIN7专业版64bit。 需要用到的工具 Visual Studio CodeSTM32CubemxARM GCC 交叉编译工具链&#x…...

centos7 python3.12.1 报错 No module named _ssl

https://blog.csdn.net/Amio_/article/details/126716818 安装python cd /usr/local/src wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz tar -zxvf Python-3.12.1.tgz cd Python-3.12.1/ ./configure -C --enable-shared --with-openssl/usr/local/opens…...

探索HTTP协议:网络通信的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

几大开源免费的 JavaScript 富文本编辑器测评

MarkDown 编辑器用的时间长了&#xff0c;发现发现富文本编辑器用起来是真的舒服。 一直以来写博客都是用的 MarkDown 编辑器&#xff0c;MarkDown 文档简单方便&#xff0c;使用几个简单的符号就可以定义出样式统一的富文本内容。写博客的时间长了&#xff0c;小玖就越来越排…...

MongoDB聚合运算符:$dateFromString

文章目录 语法使用使用例子对规则进行说明格式指示符 举例日期转换错误处理onError空值的粗粒 onNull $dateFromString聚合运算符将日期时间字符串转换为日期对象。 语法 { $dateFromString: {dateString: <dateStringExpression>,format: <formatStringExpression&g…...

Postman(注册,使用,作用)【详解】

目录 一、Postman 1. Postman介绍 2. 安装Postman 3. 注册帐号再使用(可保存测试记录) 4. 创建workspace 5. 测试并保存测试记录 一、Postman postman工具可以发送不同方式的请求,浏览器只能发送get请求(所有用这个工具) 在前后端分离开发模式下&#xff0c;前端技术人员…...

电商数据分析18——电商广告投放的数据分析与优化

目录 写在开头1. 电商广告投放的挑战与机遇1.1 广告投放的主要目标与挑战1.2 广告数据分析的价值 2. 数据分析在广告投放中的应用2.1 目标受众分析与精准定位2.2 广告效果评估与ROI分析2.3 A/B测试与广告内容优化 3. 广告投放优化的实践案例3.1 案例分享&#xff1a;精准定向提…...

Docker下Jenkins打包java项目并部署

docker 构建Jenkins sudo docker run --namezen_haslett --userjenkins --privilegedtrue --volume/home/cyf/server/jenkins/jenkins_home:/var/jenkins_home -v /usr/lib/jvm/java-17-openjdk-amd64:/usr/lib/jvm/java-17-openjdk-amd64 -v /usr/lib/maven/apache-mav…...

android 快速实现 recyclerview 的所有item 都执行动画

1.在adapter 里面重写onViewAttachedToWindow 和 onViewDetachedFromWindow 两个方法 package com.example.widget;import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; import android.view.animat…...

Excel转pdf

1、excel-内存值--Workbook 转pdf /** * excel To pdf * * param outPath 输出路径 * param workbook excel-内存值 * throws IOException */ public static void excelToPdf(String outPath,Workbook workbook) throws IOException, DocumentException { Document documentnul…...

QT:用opencv的KNN识别图片中的LED数字(一)

前言 一款功能测试的软件demo,使用了QT作为界面,主要使用了opencv的KNN识别,使用gstreamer作为管道,用来打开图片。后期会写一篇打开摄像头实时识别的文章。 (正在写,未完成,稍候) 效果一预览: 效果二预览: 效果三预览: 正在写。。。 设计思路 1. 软件UI设计 2. …...

leetcode72. 编辑距离

leetcode72. 编辑距离 题目 思路 dp[i][j] 代表 word1 到 i 位置转换成 word2 到 j 位置需要最少步数&#xff0c;所以&#xff0c; 当 word1[i] word2[j]&#xff0c;dp[i][j] dp[i-1][j-1]&#xff1b; 当 word1[i] ! word2[j]&#xff0c;dp[i][j] 1 min(dp[i-1][j-1]…...

R语言的数据类型与数据结构:向量、列表、矩阵、数据框及操作方法

R语言的数据类型与数据结构&#xff1a;向量、列表、矩阵、数据框及操作方法 介绍向量列表矩阵数据框 介绍 R语言拥有丰富的数据类型和数据结构&#xff0c;以满足各类数据处理和分析的需求。本文将分享R语言中的数据类型&#xff0c;包括向量、列表、矩阵、数据框等&#xff…...

第十六章 构建和配置 Nginx 以与 Web 网关配合使用 (Windows) - 将 NSD 与 Nginx 结合使用

文章目录 第十六章 构建和配置 Nginx 以与 Web 网关配合使用 (Windows) - 将 NSD 与 Nginx 结合使用将 NSD 与 Nginx 结合使用CSPNSD_pass hostname:portNum;CSP on; and CSP off;CSPFileTypes filetype1[ filetype2...];CSPNSD_response_headers_maxsize size;CSPNSD_connect_…...

数据中台:数字中国战略关键技术设施

文章目录 每日一句正能量前言为何要建设数据中台数据中台建设痛点数据中台学习资料聚焦前沿&#xff0c;方法论体系更新与时俱进&#xff0c;紧跟时代热点深入6大行业&#xff0c;提炼实践精华大咖推荐&#xff0c;数字化转型必备案头书购买链接赠书活动 每日一句正能量 人生之…...

SOCD Cleaner终极指南:如何彻底解决键盘方向键冲突问题

SOCD Cleaner终极指南&#xff1a;如何彻底解决键盘方向键冲突问题 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏中&#xff0c;你是否曾因同时按下W和S键导致角色卡顿&#xff1f;是否在快速连招时…...

ONNX到PyTorch的终极转换指南:onnx2torch完整教程

ONNX到PyTorch的终极转换指南&#xff1a;onnx2torch完整教程 【免费下载链接】onnx2torch Convert ONNX models to PyTorch. 项目地址: https://gitcode.com/gh_mirrors/on/onnx2torch 你是否曾经遇到这样的困境&#xff1f;拿到了一个ONNX格式的深度学习模型&#xff…...

告别Gradle下载卡顿:一招修改本地路径,让Android Studio编译快人一步

告别Gradle下载卡顿&#xff1a;一招修改本地路径&#xff0c;让Android Studio编译快人一步 每次新建或导入Android项目时&#xff0c;看着进度条卡在Gradle下载界面动弹不得&#xff0c;是不是有种砸键盘的冲动&#xff1f;这种痛苦我太熟悉了——明明电脑里已经存着完整的G…...

八大网盘直链下载终极解决方案:LinkSwift完整指南

八大网盘直链下载终极解决方案&#xff1a;LinkSwift完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

【西门子】PLC_300F系列PLC_初始化MMC卡实验教程 S_L01

西门子300F安全PLC忘记安全密码没有读卡器如何清空MMC卡西门子300F PLC安全密码操作前注意事项本次实验使用的硬件设备将新硬件进行组态和IP分配使用此硬件配合MMC进行操作西门子300F PLC安全密码 300系列PLC在下载程序前必须设定一个安全密码&#xff0c;此密码会写在MMC卡里…...

让你老旧电脑复活方案之linux拯救旧电脑神器—-安装linuxmint后使用手机或外置无线网卡实现(免驱动)快速上网功能

老旧电脑实现linux快速上网方法&#xff1a; linux拯救旧电脑神器—-安装linuxmint后使用手机或外置无线网卡实现&#xff08;免驱动&#xff09;快速上网功能&#xff1a;—————这是分割线———— 首先&#xff0c;分析旧电脑状态&#xff1a;以旧笔记本电脑DELLn4020为例…...

Inter字体OpenType特性终极指南:专业设计师必须掌握的5个排版技巧

Inter字体OpenType特性终极指南&#xff1a;专业设计师必须掌握的5个排版技巧 【免费下载链接】inter The Inter font family 项目地址: https://gitcode.com/gh_mirrors/in/inter Inter字体作为现代无衬线字体系统的典范&#xff0c;凭借其强大的OpenType特性和卓越的可…...

告别繁琐SQL!Spring Boot 3.2 + MybatisPlus 3.5.x 配置与常用注解避坑指南

Spring Boot 3.2 MyBatis-Plus 3.5.x 实战避坑手册&#xff1a;从配置陷阱到注解玄学 当你在深夜调试MyBatis-Plus时&#xff0c;是否经历过这样的绝望瞬间——明明按照教程一步步操作&#xff0c;启动时却报出Invalid bound statement&#xff1f;或是发现TableField注解像被…...

从VOC到YOLO:一文搞懂目标检测数据集格式转换(附Python脚本详解与YOLOv5配置)

从VOC到YOLO&#xff1a;目标检测数据集格式转换实战指南 1. 理解数据集格式差异的本质 目标检测任务中&#xff0c;数据标注格式直接影响模型训练效果。Pascal VOC和YOLO采用完全不同的标注逻辑&#xff0c;这种差异源于它们设计时的不同考量。 VOC格式采用XML结构存储标注信息…...

Switch游戏传输终极指南:NS-USBLoader跨平台解决方案

Switch游戏传输终极指南&#xff1a;NS-USBLoader跨平台解决方案 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitcode.com/gh_mirror…...