二叉树前中后序遍历

简介: 这段内容是关于二叉树的前序、中序和后序遍历的Python实现。`Solution`类包含三个方法:`preorderTraversal`、`inorderTraversal`和`postorderTraversal`,分别返回二叉树节点值的前序、中序和后序遍历列表。每个方法都是递归的,遍历顺序为:前序(根-左-右)、中序(左-根-右)、后序(左-右-根)。

前序

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


# 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]:

       if not root:

           return []

       left=self.preorderTraversal(root.left)

       right=self.preorderTraversal(root.right)

       return [root.val]+left+right

中序:

给定一个二叉树的根节点 root ,返回 它的 中序 遍历


# 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 inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:

       if  root is None:

           return []

       left = self.inorderTraversal(root.left)

       right=self.inorderTraversal(root.right)

       return left+[root.val]+right

后序:

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。


# 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 postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:

       if  root is None:

           return []

       left = self.postorderTraversal(root.left)

       right=self.postorderTraversal(root.right)

       return left+right+[root.val]

相关文章
|
存储 测试技术 编译器
面向 C++ 的现代 CMake 教程(三)(5)
面向 C++ 的现代 CMake 教程(三)
267 1
|
JSON 数据格式
Uncaught SyntaxError: JSON.parse: expected property name or '}' at line 1 column 14 of the JSON data问题处理
【5月更文挑战第14天】Uncaught SyntaxError: JSON.parse: expected property name or '}' at line 1 column 14 of the JSON data问题处理
582 0
|
机器学习/深度学习 搜索推荐 知识图谱
图神经网络加持,突破传统推荐系统局限!北大港大联合提出SelfGNN:有效降低信息过载与数据噪声影响
【7月更文挑战第22天】北大港大联手打造SelfGNN,一种结合图神经网络与自监督学习的推荐系统,专攻信息过载及数据噪声难题。SelfGNN通过短期图捕获实时用户兴趣,利用自增强学习提升模型鲁棒性,实现多时间尺度动态行为建模,大幅优化推荐准确度与时效性。经四大真实数据集测试,SelfGNN在准确性和抗噪能力上超越现有模型。尽管如此,高计算复杂度及对图构建质量的依赖仍是待克服挑战。[详细论文](https://arxiv.org/abs/2405.20878)。
340 5
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
345 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
运维 Kubernetes Serverless
阿里云Serverless产品简介
Serverless 应用引擎SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用PaaS平台,支持Spring Cloud、Web应用、ElasticJob任务等全托管,零改造迁移、无门槛容器化,提供了开源侧诸多增强能力和企业级高级特性。换句话说,SAE是应用 Serverless 化的良好实践。
448 2
|
数据采集 存储 数据可视化
基于Python 网络爬虫和可视化的房源信息的设计与实现
本文介绍了一个基于Python Scrapy框架和echart库的房源信息采集与可视化系统,该系统通过自动化爬虫提高房地产数据采集效率,并通过Flask服务器实现数据的Web可视化展示,旨在帮助房地产从业人员和政策制定者高效、直观地了解房源信息。
362 1
|
Linux 数据处理
Linux命令reset详解
`reset`命令在Linux中用于修复终端显示异常,它是`tset`的软链接。通过重置显示属性和参数,恢复终端正常状态。特点包括自动检测终端类型、多参数支持及恢复显示设置。常用参数有 `-e`, `-i`, `-k` 用于设置控制字符,`-V` 显示ncurses版本。在终端出现问题时,简单运行`reset`即可重置,定期使用可维护终端整洁。记得确保已安装ncurses库。
|
存储 算法 Serverless
C++中求根号
C++中求根号
3075 0
|
存储 NoSQL 关系型数据库
浅谈图数据库
浅谈图数据库
416 0
|
消息中间件 算法 开发者
【Qt面试题】多线程情况下, Qt中的信号槽分别在什么线程中执行, 如何控制?
【Qt面试题】多线程情况下, Qt中的信号槽分别在什么线程中执行, 如何控制?
1199 1
下一篇
oss云网关配置