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

Leetcode只二叉树中序遍历(python解法)

1.题目描述

示例 1:

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

示例 2:

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

示例 3:

输入:root = [1]输出:[1]
2.解决方法:

中序遍历就是先遍历左子树然后遍历右子树

可以使用栈将左子树所有的根节点的val记录下来,然后在从底部网上遍历,这才是正确的书顺序

此时就可以加上左树和根,此时遍历右子树即可

栈方法:

# 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]:
result = [] # 存放最终遍历结果
stack = [] # 显式栈,模拟递归调用栈
current = root # 当前正在处理的节点,从根开始

# 只要栈不为空,或者当前节点不为空,就继续循环
while stack or current:
# 一路向左,把路径上所有节点压入栈
while current:
stack.append(current)
current = current.left

# 此时 current 为 None,说明已到达最左叶子的左孩子(空)
# 弹出栈顶 —— 这就是当前子树中“最左但未访问”的节点(即该子树的根)
current = stack.pop()
result.append(current.val) # 访问它(加入结果)

# 转向它的右子树(可能为空,也可能有内容)
current = current.right

return result

递归方法:

def inorderTraversal(root):
if not root: # 基础情况
return []

left_list = inorderTraversal(root.left) # 递归处理左子树
right_list = inorderTraversal(root.right) # 递归处理右子树

return left_list + [root.val] + right_list

http://www.jsqmd.com/news/610283/

相关文章:

  • FastAPI子应用挂载:别再让root_path坑你一夜张
  • OpenClaw飞书机器人配置:SecGPT-14B安全警报实时推送
  • 别再踩坑了!SQL Server数据类型那点事儿,看懂这篇少背三个锅尘
  • Windows10专业版U盘启动盘制作全攻略(附官方工具下载链接)
  • 投机解码(Speculative Decoding) KV Cache
  • FlashAttention 全系列深度解析--IO 感知注意力计算如何重塑 LLM 训练与推理
  • 不满意Oh My Zsh启动卡顿,来试试Starship吧城
  • 从Java全栈到前端框架:一位资深开发者的实战经验分享
  • 三菱FX3U与3台三菱变频器Modbus RTU通讯程序实现
  • 2026 中国律所数字化转型工具选型指南
  • 2026年4月电商客服外包标杆名录:头部服务商核心能力全解析 - 优质品牌商家
  • 按住F2将页面中的数字转换为阿拉伯数字
  • 【2024高并发必修课】:在无GIL Python中实现Lock-Free Queue、RCU读写分离与Wait-Free Stack的7种工业级写法
  • Gemma 4 入门指南
  • 2026年4月剪板厂家选型:超长工件与批量成本双视角 - 优质品牌商家
  • VsCode插件避坑指南:我为什么卸载了这些热门插件(附替代方案)
  • 体系结构论文(九十七):Spec2RTL-Agent: Automated Hardware Code Generation from Complex Specifications Using LLM
  • STM32与OpenCV实现低成本人脸红外测温系统
  • 聚焦自动化精密抓取,2026 工业电爪选型要点与品质把控指南 - 品牌2026
  • Skill技能包创建避坑指南:10大高频错误+一站式解决方案
  • 技术判断力之AI三问寿
  • AI 时代,计算机专业学生该怎么学?昂
  • 三菱FX3U与4台台达Ms300变频器通讯实战
  • Python AI工程师最后的编译红利:Cuvil配置不掌握,2025推理效率将落后同行47%?
  • django基于深度学习的旅游推荐系统设计与实现_2019b7b4_lx013
  • ESP32S3 驱动MAX98357 I2S 音频播放:从SD卡解码MP3到实时输出的全链路解析
  • 三指电爪有哪些使用优势?2026年值得选择的三指电爪品牌是什么? - 品牌2026
  • dSPIN库深度解析:L6470步进电机驱动开发实战指南
  • 基于51单片机的扫地小车代码功能说明
  • 如何将.NET 9 API容器启动时间压缩至387ms?——AOT+Containerd+OverlayFS极致优化路径(附压测报告)