二叉树前中后序遍历

简介: 这段内容是关于二叉树的前序、中序和后序遍历的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]

相关文章
|
Web App开发 缓存 网络协议
解决Github不能下载,下载速度慢的小妙招
解决Github不能下载,下载速度慢的小妙招
解决Github不能下载,下载速度慢的小妙招
|
资源调度 调度 Apache
Apache Flink 进阶(六):Flink 作业执行深度解析
主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。
Apache Flink 进阶(六):Flink 作业执行深度解析
|
机器学习/深度学习 算法 算法框架/工具
MINUN: 微控制器上的精确机器学习推理——论文阅读
MINUN是一个专为微控制器设计的高效机器学习推理框架,能精确解决TinyML中的三大挑战:数字表示参数化、位宽分配优化和内存碎片管理。它支持如Arduino和STM32等低功耗设备,显著减少内存占用,同时保持模型精度。
1200 122
|
传感器 IDE 物联网
ESP8266接入阿里云物联网平台上传温湿度数据
本文章使用NodeMCU(ESP8266)开发板和SHTC3温湿度传感器接入阿里云物联网(IoT)平台,并上传读取到的温湿度数据。
23608 6
ESP8266接入阿里云物联网平台上传温湿度数据
|
7月前
|
数据采集 机器学习/深度学习 人工智能
罗兰艺境GEO数据采集与信源分析系统:穿透AI推荐黑箱的逆向工程探针
罗兰艺境GEO多源智能推荐数据采集与信源分析系统,是面向生成式引擎优化的基础数据引擎。系统采用可扩展的平台适配器架构,支持DeepSeek、Kimi、豆包等主流AI平台的推荐结果采集;通过智能信源分类与权重动态计算模型,将非结构化的AI推荐转化为可量化、可追溯的结构化数据。系统输出信源权威分布、引用频次、时效偏好等关键特征,为GEO效果归因与策略生成提供可信数据支撑。适用于技术团队构建AI认知观测体系,实现从经验试错到数据驱动的GEO工程化实践。
653 6
|
测试技术
Fast网络速度测试工具
Fast是由Netflix提供的网络速度测试工具,可快速测量用户的下载、上传速度及延迟。其全球可用、无广告干扰,并支持多种设备。测试自动进行,结果以Mbps显示。此外,用户可通过“Show more info”查看上传速度和延迟(含缓冲膨胀)。Fast以其简单快捷的特点,帮助用户了解网络性能并解决潜在问题,是评估网速的理想选择。
2278 0
Fast网络速度测试工具
|
固态存储 Linux Shell
阿里云Linux服务器性能测试wget -qO- bench.sh | bash
阿里云服务器性能测试,使用知名博主的wget -qO- bench.sh | bash来测试下阿里云服务器CPU Model(CPU型号)、CPU Cores(核数)、CPU Frequency(主频)、Total Disk(磁盘容量)、Total Mem(内存)、Swap(虚拟内存)、系统发行版本、Linux内核、地域节点、磁盘I/O读写速度及云服务器上传下载速度测试
1676 0
阿里云Linux服务器性能测试wget -qO- bench.sh | bash
|
机器学习/深度学习 移动开发 JavaScript
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
8774 0
|
人工智能 算法框架/工具
Stable Diffusion修复老照片-图生图
修复老照片的意义就不多说了,相信大家都明白,这里直接开讲方法。
1664 0
|
IDE 开发工具 C++
MDK5软件入门之——基础工程创建及下载和调试
MDK5软件入门之——基础工程创建及下载和调试
1175 0
MDK5软件入门之——基础工程创建及下载和调试