当前位置: 首页 > news >正文

(树)Leetcode94二叉树的中序遍历

二叉树主要有两种遍历方式:

  1. 深度优先遍历:先往深走,遇到叶子节点再往回走。
  2. 广度优先遍历:一层一层的去遍历。

这两种遍历是图论中最基本的两种遍历方式,后面在介绍图论的时候 还会介绍到。

那么从深度优先遍历和广度优先遍历进一步拓展,才有如下遍历方式:

  • 深度优先遍历
    • 前序遍历(递归法,迭代法)
    • 中序遍历(递归法,迭代法)
    • 后序遍历(递归法,迭代法)
  • 广度优先遍历
    • 层次遍历(迭代法)

之前我们讲栈与队列的时候,就说过栈其实就是递归的一种实现结构,也就说前中后序遍历的逻辑其实都是可以借助栈使用递归的方式来实现的。

而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。

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

无辅助函数

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def inorderTraversal(self, root):""":type root: Optional[TreeNode]:rtype: List[int]"""#左中右顺序if not root:return []return self.inorderTraversal(root.left)+[root.val]+self.inorderTraversal(root.right)

有辅助函数

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def inorderTraversal(self, root):""":type root: Optional[TreeNode]:rtype: List[int]"""result=[]self.mid(result,root)return resultdef mid(self,result,node):#左中右顺序if not node:return self.mid(result,node.left)result.append(node.val)self.mid(result,node.right)

http://www.xdnf.cn/news/1413271.html

相关文章:

  • RK3568平台开发系列讲解:瑞芯微平台4G模块篇移植
  • Java 类加载器解析
  • macos自动安装emsdk4.0.13脚本
  • 【开题答辩全过程】以 家庭理财管理系统的设计与实现为例,包含答辩的问题和答案
  • Playwright 中Codegen的优点与局限性分析
  • a3002盘式制动器刹车cad➕三维图➕设计说明书
  • flutter工程
  • kkfileview自建cdn引入
  • 血缘元数据采集开放标准:OpenLineage Integrations Compatibility Tests Structure
  • 利用 Java 爬虫获取淘宝拍立淘 API 接口数据的实战指南
  • 基于VS平台的QT开发全流程指南
  • 蓝牙AOA助力智慧仓储管理系统
  • MongoDB 从零到入门:实用指南
  • OSWatcher安装和使用(简化版)
  • 其他八股总结
  • Day 01(01): Hadoop与大数据基石
  • LabVIEW电力系统自动化仿真实验教学系统
  • 掩码语言模型(Masked Language Model, MLM)
  • ES集群部署-EFK架构实战
  • 第十八章 ESP32S3 HW_PWM 实验
  • 基于springboot的摄影器材租赁回收系统
  • Docker 容器(二)
  • 大模型面试题剖析:PPO 与 GRPO 强化学习算法核心差异解析
  • 大模型应用总结
  • shell编程之shell脚本基础(未完待续)
  • 飞牛Docker部署免费frp内网穿透
  • 2025.8.18-2025.8.24第35周:备稿演讲有进步
  • 从零构建中间件:Tower 核心设计的来龙去脉
  • AI 编程新玩法:用 yunqi-saas-kit 框架制作小游戏,看广告变现轻松赚钱​
  • 【Linux】linux进程 vs 线程