二叉树前中后序遍历

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

相关文章
|
资源调度 调度 Apache
Apache Flink 进阶(六):Flink 作业执行深度解析
主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。
Apache Flink 进阶(六):Flink 作业执行深度解析
|
4月前
|
人工智能 运维 Cloud Native
关系型数据库,阿里云问鼎7连冠!
自2019年起,阿里云已连续7年蝉联中国关系型数据库软件市场榜首。
|
固态存储 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读写速度及云服务器上传下载速度测试
1656 0
阿里云Linux服务器性能测试wget -qO- bench.sh | bash
|
人工智能 自动驾驶 数据可视化
魔搭社区模型速递(3.30-4.12)
魔搭ModelScope本期社区进展:新增1911个模型,297个数据集,113个创新应用, 10篇内容。
863 3
魔搭社区模型速递(3.30-4.12)
|
机器学习/深度学习 移动开发 JavaScript
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
8720 0
|
机器学习/深度学习 Python
Python 工具和库:Python 的包管理工具有哪些?如何使用它们安装和管理包?
Python 工具和库:Python 的包管理工具有哪些?如何使用它们安装和管理包?
971 0
|
人工智能 算法框架/工具
Stable Diffusion修复老照片-图生图
修复老照片的意义就不多说了,相信大家都明白,这里直接开讲方法。
1642 0
|
存储 编解码 算法
Matplotlib图形的输出与保存
Matplotlib可以将任何图形渲染为各种常见的文件格式,如PNG、EPS、SVG和PDF。在本文中,将探讨Matplotlib的文件输出功能,还将学习如何控制输出的分辨率和大小以及透明度等。
4130 0
Matplotlib图形的输出与保存
|
IDE 开发工具 C++
MDK5软件入门之——基础工程创建及下载和调试
MDK5软件入门之——基础工程创建及下载和调试
1151 0
MDK5软件入门之——基础工程创建及下载和调试
|
计算机视觉
MATLAB--数字图像处理 添加高斯噪声
MATLAB--数字图像处理 添加高斯噪声
831 0
MATLAB--数字图像处理 添加高斯噪声

热门文章

最新文章