94.二叉树的中序遍历 python

二叉树的中序遍历(python) 题目要求:给定一个二叉树的根节点root,返回它的遍历。[1,3,2]root = [][]root = [1][1]这是一道关于二叉树中序遍历的问题。中序遍历是指按照左子树-根节点-右子树的顺序遍历二叉树。可以用递归和迭代两种解法来解。 阅读详情

题目

题目描述

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

示例 1:

在这里插入图片描述

输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

提示:

树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100

题解

中序遍历(Inorder Traversal)是二叉树的一种遍历方式,其遍历顺序为:先访问左子树,然后访问根节点,最后访问右子树。对于每个子树来说,也是遵循相同的访问顺序。这种遍历方法特别适用于二叉搜索树(BST),因为在BST中进行中序遍历会按照升序访问节点。

解题思路

为了实现中序遍历,我们可以使用递归或迭代的方法:

  1. 递归法:这是最直观的方法。我们定义一个辅助函数来进行递归调用,在这个过程中,首先递归访问左子树,然后访问当前节点,最后递归访问右子树。
  2. 迭代法:通过显式地使用栈来模拟递归调用的过程。开始时将所有左侧节点压入栈中,直到遇到没有左孩子的节点为止;然后弹出栈顶元素并访问它,接着转向它的右子树,并重复上述过程。

下面分别给出这两种方法的 Python 实现代码:

递归法

def inorderTraversal(root: TreeNode) -> list:
    result = []
    
    def traverse(node):
        if not node:
            return
        # 先遍历左子树
        traverse(node.left)
        # 访问根节点
        result.append(node.val)
        # 最后遍历右子树
        traverse(node.right)
    
    traverse(root)
    return result

提交结果

在这里插入图片描述

迭代法

def inorderTraversal(root: TreeNode) -> list:
    stack, result = [], []
    current = root
    
    while current or stack:
        # 遍历到最左边的节点,并将其沿途的所有节点压入栈中
        while current:
            stack.append(current)
            current = current.left
        
        # 弹出栈顶元素并访问它
        current = stack.pop()
        result.append(current.val)
        
        # 转向右子树
        current = current.right
    
    return result

提交结果

在这里插入图片描述

LeetCode - 94 - 二叉树的中序遍历 (Python) 标题 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 递归 首先,递归的方法很简单,将访问函数写为向列表中添加元素即可。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val... 阅读详情

相关推荐

LeetCode.94 二叉树的中序遍历(python解法)

目录题目solution_1参考资料 题目 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] solution_1 思路:“颜色标记法”,兼具栈迭代方法的高效,又像递归方法一样简洁易懂,更重要的是,这种方法对于前序、中序、后序遍历,能够写出完全一致的代码。 其核心思想如下: 使用颜...

weixin_41638083的博客 547

LeetCode(Python)—— 二叉树的中序遍历(简单)

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

m0_61661179的博客 6万+

快速入门:使用 SQL Server Management Studio (SSMS) 连接和查询 SQL Server 实例

开始使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例并运行一些 Transact-SQL (T-SQL) 命令。本文介绍如何连接和查询实例SQL Server。有关 Azure SQL,请参阅连接。若要使用,请参阅连接和查询。若要详细了解如何SQL Server Management Studio,请参阅其他。......

m0_72938729的博客 5729

数据结构之树:中序遍历二叉树(C & Python)

C和Python实现中序遍历二叉树非递归算法

guanchazhe55的博客 2322

Qi标准无线充学习笔记

负载调制主要通过接收端向后散射调制计数使得功率信号改变,两者通过线圈的电压和电流的变化量来传输信号。下面是要求稳定电流的变化量不得超出8ma,判断稳定的时间至少要在150us稳定电压的变化量不得超出110mv,判断稳定的时间至少要在150us高低电流变化量至少需要15mA,判断稳定的时间至少要在100us,主线圈电流采样的时间是在半桥转换的1/4周期刻测量的高低电压变化量至少需要200mV,判断稳定的时间至少要在100us。

m0_73991989的博客 1011

H3C无线控制器AC与第三方认证系统集成实现企业级Portal短信认证方案

本文详细阐述了如何将H3C无线控制器(AC)与第三方认证系统集成,构建企业级Portal短信认证方案。该方案通过手机号作为临时凭证,实现了访客网络的实名追溯、权限控制与专业体验。文章深入解析了方案原理、H3C AC的关键配置步骤、第三方系统对接要点及短信网关选型避坑指南,为企业提升网络安全管理与访客服务质量提供了完整、可行的实战指导。

a3b4c5的博客 195

算法数据结构基础——二叉树的遍历(前序、中序、后序、层序)及python实现

二叉树的遍历:指的是从根节点出发,按照某种次序依次访问二叉树中所有节点,使得每个节点被访问一次且仅被访问一次。在二叉树的一些实际问题中,经常需要按照一定顺序对二叉树中每个节点逐个进行访问一次,用以查找具有某一特点的节点或者全部节点,然后对这些满足要求的节点进行处理。这里所说的「访问」就是指对该节点进行某种操作,例如:依次输出节点的数据信息、统计满足某条件的节点总数等等。回顾二叉树的递归定义可以知道,二叉树是由根节点和左子树、右子树构成的。因此,如果能依次遍历这3个部分,就可以遍历整个二叉树。

白话机器学习 7920

把 SAP S/4HANA 中的 Maintain Email Templates 用好:从模板维护、语言变体、业务绑定到传输治理的完整实践

摘要:SAP邮件模板管理常被低估,实则关乎审批通知、业务提醒等关键输出。官方推荐通过复制标准模板实现自定义,而非直接修改标准内容,以保持核心稳定。模板维护涉及语言变体、业务绑定、数据传输等治理环节,需业务顾问与开发团队协作确保字段来源与渲染逻辑。实施时需注意Fiori配置、权限分配及传输管理,避免测试与生产环境差异。模板设计应平衡灵活性与复杂度,遵循分层测试策略(内容、数据、流程),并建立命名规范以维护资产清晰度。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 68

python实现二叉树遍历(前、中、后序)

        树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。         从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作: ⑴访问结点本身(N) ⑵遍历该结点的左子树(L) ⑶遍历该结点的右子树(R) 前序遍历(先序遍历): NLR:先访问根节点–> 访问左

weixin_43786241的博客 5193

基于STM32L4XX、HAL库的ICP-10111压力传感器驱动程序设计

define ICP10111_CMD_MEAS_ULN 0x7866 // 超低噪声模式。#define ICP10111_CMD_MEAS_LP 0x609C // 低功耗模式。#define ICP10111_CMD_MEAS_LN 0x70DF // 低噪声模式。#define ICP10111_CMD_MEAS_N 0x6825 // 正常模式。ICP10111_MODE_LN, // 低噪声。// 等待测量完成(根据模式不同等待时间不同)

zhusl6688的博客 417

YOLOv8【第二章:卷积创新篇·第23节】一文搞懂,Transformer与卷积混合架构!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》,该专栏持续复现网络上各种热门内容(全网YOLO改进最全最新的专栏,质量分97分+,全网顶流),改进内容支持(分类、检测、分割、追踪、关键点、OBB检测)。且专栏会随订阅人数上升而涨价(毕竟不断更新),当前性价比极高,有一定的参考&学习价值,部分内容会基于现有的国内外顶尖人工智能AIGC等AI大模型技术总结改进而来,嘎嘎硬核。    ✨ 特惠福利:目前活动一折秒杀价!一次订阅,永久免费,所有后续更新内容均免费阅读!

**My Coding Family** 1388

94 - 二叉树的中序遍历 - python

给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 二叉树的中序遍历顺序为:左- 根 - 右,最常用的是使用递归来进行求解,递归过程是:遍历左子树 - 打印当前结点 - 遍历右子树 ,递归终止条件是root == None。 c...

Forlogenの解忧杂货铺 684

【Bluetooth|蓝牙开发】二、蓝牙开发入门

蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。

Donge's Blog 1万+

LeetCode 94. 二叉树的中序遍历 | Python

使用递归、迭代(栈),解决 LeetCode 《94. 二叉树的中序遍历》 问题

"大梦三千秋的博客 522

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 505

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

leetcode 94.二叉树的中序遍历(python)

leetcode 94.二叉树的中序遍历(python) 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 方法1: 递归 # # @lc app=leetcode.cn id=94 lang=python # # [94] 二叉树的中序遍历 # # @lc code=start # Definition for a binary tree

pureszgd的博客 477

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode 94. 二叉树的中序遍历|Python 解法详解

这道题的关键是:递归函数负责遍历一棵子树:空节点直接返回,依次递归左子树、记录根值、递归右子树。理解这一点后,再结合边界条件检查,代码就能保持清晰且稳定。

a1250467048的博客 278

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Leetcode 94 python 二叉树的中序遍历

题意: 给定一个二叉树,返回它的中序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回,否则: (1)中序遍历左子树 (2)访问根结点 (3)中序遍历右子树 如右图所示二叉树,中序遍历结果:DBEAFC ![中序遍历结果:DBE...

小力子的博客 1056

【Leetcode】Python实现—94.二叉树的中序遍历

目录一、题目描述题目中序遍历介绍二、递归实现递归遍历过程实现代码三、迭代实现 一、题目描述 题目 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例2: 输入:root = [] 输出:[] 示例3: 输入:root = [1,null,2] 输出:[1,2] 中序遍历介绍 二、递归实现 递归遍历过程 1. 前序遍历其左子树; 2. 访问根节点; 3. 前序遍历其右子树; 然后就是一直递归下去,在访问到.

weixin_38615776的博客 478

94. 二叉树的中序遍历(Python、Java)

1 题目 链接:二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1  \   2  / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2 Python 2.1 方法一:递归 # Definition for a binary tree node. # class TreeNode: # def __init...

weixin_43969686的博客 193

LeetCode-Python-94. 二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 思路: 递归就完事了,先处理左子树,再处理root,再处理右子树。 # Definition for a binary tree node. # class TreeNode(object): # def __in...

Keep Coding 2185

【LeetCode 94】二叉树的中序遍历(Python)

一、题目 给定一个二叉树,返回它的中序遍历。 示例: 输入: [1,null,2,3] 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 二、代码 1.递归。很简单,不多做说明了。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.rig

Lucy_R的博客 432

Leetcode 94. 二叉树的中序遍历 Python3实现

Leetcode 94. 二叉树的中序遍历 Python3实现 基于栈实现二叉树的中序遍历,加了详细的注释,方便日后复习,也希望能帮到其他小伙伴,如有错误,欢迎指正! 基于栈的迭代法: class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: # 定义一个栈,用来存已遍历,但是还未到弹出时机的节点 stack = [] # res用来中序遍历的结果

Println30的博客 256

Leetcode_总结】94. 二叉树的中序遍历 - python

Q: 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/description/ 思路:递归 中序遍历 代码: # Definition...

maka_uir的博客 601

树-94. 二叉树的中序遍历-PYTHON

迭代 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): ...

宋建国的博客 428

二叉树 中序遍历 python_LeetCode94 二叉树的中序遍历

解题思路递归递归思路很简单,首先递归左子树,然后将根结点的值添加到结果集中,最后递归右子树递归终止条件:节点为空代码如下ArrayList res = new ArrayList<>();public List inorderTraversal(TreeNode root) { dfs(root); return res;}public void dfs(Tree...

weixin_39530839的博客 122
上一篇: 93.复原IP地址 python
下一篇: 95.不同的二叉搜索树Ⅱ python
gxls2024
博客等级 码龄9年 1079粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gxls2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值