代码随想录 -- 二叉树 -- 二叉树的迭代遍历

devtools/2024/9/22 19:56:20/

前序

遍历顺序为中左右,定义一个栈 stack,一个数组 res 存放最终结果。

注意:由于栈是后进先出,所以要按照右左来进栈。

144. 二叉树的前序遍历 - 力扣(LeetCode)

python">class Solution(object):def preorderTraversal(self, root):stack=[]res=[]node=rootstack.append(node)while len(stack)!=0:cur=stack.pop()if cur!=None:res.append(cur.val)stack.append(cur.right)stack.append(cur.left)return res

后序

与前序类似,只需将中左右中的左右调换顺序,即中右左,再将 res 反转就能得到左右中的遍历顺序。

145. 二叉树的后序遍历 - 力扣(LeetCode)

python">class Solution(object):def postorderTraversal(self, root):stack=[]res=[]node=rootstack.append(node)while len(stack)!=0:cur=stack.pop()if cur!=None:res.append(cur.val)stack.append(cur.left)stack.append(cur.right)res.reverse()return res

中序

在使用栈、数组的基础上再借助指针。

94. 二叉树的中序遍历 - 力扣(LeetCode)

python">class Solution(object):def inorderTraversal(self, root):if root==None:returnnode=rootstack=[]res=[]while len(stack)!=0 or node!=None:if node!=None:stack.append(node)node=node.leftelse:node=stack.pop()res.append(node.val)node=node.rightreturn res


http://www.ppmy.cn/devtools/107214.html

相关文章

前后端分离项目实战-通用管理系统搭建(前端Vue3+ElementPlus,后端Springboot+Mysql+Redis)第八篇:Tab标签页的实现

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

任务栏透明怎么设置?四款win11任务栏透明软件,设计师必备!(2024新)

在使用win11的过程中,很多用户都希望能够让自己的桌面不仅仅是一个工作空间,而是一个能够反映其个性与审美的地方。特别是对于设计师、创作者或是桌面美化爱好者而言,干净利落的任务栏能大大提升工作效率和创造力。当任务栏透明化时&#xff…

掌握MySQL:数据库建模与ER图设计指南

掌握 MySQL:数据库建模与 ER 图设计指南 在现代软件开发中,数据库建模是设计和实现数据驱动型应用程序的关键步骤之一。通过数据库建模,我们能够更好地组织数据、提高数据的存储效率、增强数据的完整性和一致性。在 MySQL 环境下&#xff0c…

2408wtl,玻璃类

原文 介绍 如果喜欢Vista的玻璃玻璃效果,并想在(现有或新的)WTL应用中启用它,则本文可能有用. 本地API方便投入使用,玻璃名字空间允许简单调整现有软件. 参考 此处使用的本地API的主要文档是MSDN的桌面窗管部分. 旅游 对支持玻璃的应用 使用WTLAppWizard创建简单FirstT…

【LabVIEW学习篇 - 18】:人机界面交互设计02

文章目录 错误处理函数简单错误处理器通用错误处理器清楚错误合并错误错误代码至错误簇转换查找第一个错误 鼠标指针 错误处理函数 在LabVIEW中,是通过错误输入簇和错误输出簇来传递错误信息,可以将底层错误信息传递到上层VI。设计人员需要对不同程度的…

建筑安全寿命你知道多少?老旧危房如何逃脱‘倒塌’宿命?

改革开放以来,我国的房屋建筑一直处于快速发展时期。房屋建筑安全是人们生产、经营、居住、学习、娱乐等经济生活和人身安全的基本保证。近年来,房屋安全事故频发,造成了人员伤亡和极大财产损失。因此,在保护居民的人身安全和财产…

java异常

Java的异常处理机制提供了一种结构化的方法应对程序中的错误和异常情况。 常见的两种异常:即运行时异常和编译时异常。 运行时异常(Runtime Exceptions) 1.继承自 RuntimeException 类。 2.编译时不强制处理,可以选择处理。 例如…

Spring MVC中的DispatcherServlet:核心调度者

在Spring MVC框架中,DispatcherServlet扮演着至关重要的角色,它是整个请求处理流程的核心组件和调度者。本文将深入探讨DispatcherServlet的工作原理、主要职责以及在Spring MVC应用中的重要作用。 一、引言 Spring MVC是一种基于Java的实现了Web MVC设…