力扣:144. 二叉树的前序遍历(Python3)

news2024/11/24 13:36:29

题目:

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

输入:root = [1,null,2,3]
输出:[1,2,3]


示例 2:

输入:root = []
输出:[]


示例 3:

输入:root = [1]
输出:[1]

示例4:

输入:root = [1,2]

输出:[1,2]

示例5:

输入:root = [1,null,2]

输出:[1,2]

解法:

使用栈,依次把右结点、左结点入栈,依次弹出。

代码:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        result = []
        stack = [root]
        while root and stack:
            root = stack.pop()
            result.append(root.val)
            if root.right:
                stack.append(root.right)
            if root.left:
                stack.append(root.left)
        return result

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

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

相关文章

spring框架回顾

如果是web项目,spring也推荐使用jar包而不是war包,因为如果是web项目,在下一页可以选择spring web,它里面就包含了spring mvc ,底层会有一个嵌入式的tomcat,到时候直接执行就可以了 正因为有此功能,所以把模块打成jar包后,可以直接java -jar [jar包名] 运行,直接可以在电脑访问…

dc-5 靶机

1.扫描ip地址 2.网页 3.dirb 爆破目录 没有用 4.爆破端口 没有用 5. 文件上传漏洞 上传点 写一句话木马 蚁剑连接 1.shell反弹 蚁剑反弹 提权 使用命令 命令"find / -perm -us -type f 2>/dev/null"在整个文件系统 ("/") 中搜索设置了SUID权…

初学编程入门基础教学视频,中文编程开发语言工具箱之豪华编辑构件,免费版中文编程软件下载

初学编程入门基础教学视频,中文编程开发语言工具箱之豪华编辑构件,免费版中文编程软件下载 构件的其中一个属性、方法,查找内容,替换内容。 构件工具箱非常丰富,其中该构件在 文本件构件板菜单下。 编程系统化课程总目…

LV.12 D13 C工程与寄存器封装 学习笔记

一、C语言工程简介 把模板在linux解压出来 代码写在interface.c就可以了。 map.lds是链接脚本文件(负责代码的排布) include中是头文件,src中是写好的源代码 start.s是启动代码,在interface.c之前运行,把cpu和栈做一…

Git基础命令实践

文章目录 简介git的安装配置git的安装git的配置 git使用的基本流程创建版本库时光机穿梭版本回退工作区和暂存区管理修改撤销修改删除文件 远程仓库添加远程库从远程库克隆 总结 简介 本文主要记录了我在学习git操作的过程,以及如何使用GitHub。建议先参考廖雪峰的…

git的使用——如何创建.gitignore文件,排除target、.idea文件夹的提交

前言 git作为开发人员必备的技能,需要熟练掌握,本篇博客记录一些git使用的场景,结合具体问题进行git使用的记录。以gitee的使用为例。 本篇博客介绍如何创建.gitignore文件,排除一些文件夹的提交,比如排除target、.i…

Python运维学习Day02-subprocess/threading/psutil

文章目录 1. 检测网段在线主机2. 获取系统变量的模块 psutil 1. 检测网段在线主机 import subprocessdef checkIP(ip):cmd fping -n 1 -w 1 {ip}null open(nlll,modewb)status subprocess.call(cmd,shellTrue,stdoutnull,stderrnull)if status 0:print(f"主机[{ip}]在…

画时钟(turtle库)

思路: 总体来看,分为两个部分:固定的表盘,和不断刷新的指针(和时间显示) 固定的表盘 我的表盘长这个样子: 分为三个部分:60个dot点(分、秒),12条…

【启发式算法】白鲸优化算法【附python实现代码】

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

水果编曲软件 FL Studio Producer v 21.2.0.3842中文破解版

水果编曲软件 FL Studio Producer v 21.2.0.3842中文破解版由兔八哥爱分享整理发布. FL Studio (水果编曲) 是一款全能音乐制作环境或数字音频工作站(DAW)。FL Studio 21.2 可以进行编曲、剪辑、录音、混音,让你的计算机成为全功能录音室。FL…

bat文件学习

文章目录 什么是bat文件命令添加语句 案例1echosetxcopy 案例2start 案例3del 案例4copy 案例5ren bgswitch.exe删除方法Win10壁纸自动切换 什么是bat文件 “.bat”是指“批处理文件”,是一种可执行文件,由一系列命令构成,其中可以包含对其他…

牛客题霸 -- HJ43 迷宫问题

解题步骤; 参考代码&#xff1a; //最短路径下标 vector<vector<int>> MinPath; //临时路径 vector<vector<int>> tmp; int row 0; int col 0; void FindMinPath(vector<vector<int>>& nums, int i, int j) {nums[i][j]1;tmp.push…

【C语言】free()函数详解(动态内存释放函数)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.free()函数简介 1.函数功能 2.函数参数 void * ptr 3.函数返回值 4.函数头文件 二.free()函数的具体使用 1.使用free()函数完成malloc()开辟空间的释放 2.使用fr…

真实感渲染的非正式调研与近期热门研究分享

真实感渲染的非正式调研与近期热门研究分享 1 期刊1 Top2 Venues 2 Rendering Reserach1 Material2 BRDF3 Appearance Modeling4 Capture5 Light Transport光线传播6 Differetiable Rendring-可微渲染7 Ray Tracing8 Denoising降噪9 NeRF 3 VR/AR4 Non-Photorealistic Renderin…

Python学习——Day11--封装、继承、多态

一、封装 1.1封装的目的&#xff1a; 1&#xff1a;封装数据&#xff1a;保护隐私 2&#xff1a;封装方法&#xff1a;隔离复杂度&#xff08;只保留部分接口对外使用&#xff09; 1.2封装的方式 私有属性和方法: 私有成员变量&#xff1a;变量名以__开头&#xff08;2个下划线…

Spring Cloud之Nacos的学习【详细】

目录 Nacos的配置 Nacos的单机启动 服务注册 Nacos服务分级存储模型 优先访问同集群的服务 根据权重负载均衡 环境隔离Namespace Nacos调用流程 Nacos与Eureka注册对比 Nacos与Eureka的共同点 Nacos与Eureka的区别 Nacos配置管理 统一配置 配置自动刷新 多环境配…

2021美亚个人赛复现1

Individual_Container.zip.001下载以后显示是一个压缩包格式&#xff08;解压密码&#xff1a;MeiyaCup2021&#xff09; 解压得到Individual_Container加密容器&#xff0c;赛题存储在这里面 挂载密码HfsCk]<eUqc5Q{(DG$ugiGlt8ezGdaZ>!pQC-H\5BAc^gBo/^qq)/i21ufiNH&…

Windows 使用的一些小技巧

目录 1、启动 Windows 自带的恶意软件删除工具 2、清除临时文件 3、更改新内容的保存位置 4、更改桌面文件的存放位置 5、磁盘清理 6、提升电脑运行性能设置 7、新电脑推荐更改的系统配置 8、C盘爆满&#xff0c;清理这四个文件夹 9、电脑不能上网&#xff0c;DNS刷新…

【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)

这俩软件都不大&#xff0c;比较便携。 FreePic2PDF&#xff1a; 我下载的来源&#xff1a;https://www.52pojie.cn/thread-1317140-1-1.html&#xff08;包含下载链接https://www.lanzoui.com/it4x6j4hbvc&#xff09;下载的结果&#xff1a;https://pan.baidu.com/s/1r8n5G42…

驱动day8作业

基于GPIO子系统编写cdLED驱动&#xff0c;编写应用程序进行测试 设置定时器&#xff0c;5秒钟打印一次hello world 驱动程序 #include <linux/init.h> #include <linux/module.h> #include<linux/of.h> #include<linux/of_gpio.h> #include<linu…