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

发布时间:2026/9/19 17:42:37
DeepSeek    LeetCode 94. 二叉树的中序遍历 Python3实现 LeetCode 94. 二叉树的中序遍历 Python3 实现题目给定一个二叉树的根节点 root返回它的 中序遍历。中序遍历顺序左子树 → 根节点 → 右子树示例输入root [1,null,2,3] 输出[1,3,2]解法一递归思路按照「左 → 根 → 右」的顺序递归访问即可。代码fromtypingimportList,Optional# Definition for a binary tree node.classTreeNode:def__init__(self,val0,leftNone,rightNone):self.valval self.leftleft self.rightrightclassSolution:definorderTraversal(self,root:Optional[TreeNode])-List[int]:res[]defdfs(node:Optional[TreeNode]):ifnotnode:returndfs(node.left)# 左res.append(node.val)# 根dfs(node.right)# 右dfs(root)returnres复杂度· 时间复杂度O(n)每个节点访问一次。· 空间复杂度O(h)h 为树高递归栈深度。解法二迭代显式栈思路用一个栈模拟递归。不断将当前节点及其左子节点入栈直到最左。弹出栈顶节点访问其值然后转向右子节点。代码fromtypingimportList,OptionalclassSolution:definorderTraversal(self,root:Optional[TreeNode])-List[int]:res[]stack[]currootwhilecurorstack:# 一路向左入栈whilecur:stack.append(cur)curcur.left# 弹出并访问curstack.pop()res.append(cur.val)# 转向右子树curcur.rightreturnres复杂度· 时间复杂度O(n)· 空间复杂度O(h)解法三Morris 遍历O(1) 空间思路利用叶子节点的空右指针指向中序后继从而避免使用栈。若当前节点无左子节点直接访问转向右子节点。若有左子节点找到左子树的最右节点中序前驱· 若其右指针为空指向当前节点然后当前节点向左。· 若其右指针已指向当前节点说明左子树已遍历完断开指针访问当前节点转向右子节点。代码fromtypingimportList,OptionalclassSolution:definorderTraversal(self,root:Optional[TreeNode])-List[int]:res[]currootwhilecur:ifnotcur.left:# 无左子树直接访问res.append(cur.val)curcur.rightelse:# 找左子树的最右节点中序前驱precur.leftwhilepre.rightandpre.right!cur:prepre.rightifnotpre.right:# 建立线索pre.rightcur curcur.leftelse:# 断开线索访问当前节点pre.rightNoneres.append(cur.val)curcur.rightreturnres复杂度· 时间复杂度O(n)· 空间复杂度O(1)总结解法 时间复杂度 空间复杂度 特点递归 O(n) O(h) 最简洁易理解迭代 O(n) O(h) 避免递归栈溢出Morris O(n) O(1) 空间最优但会临时修改树结构面试中推荐掌握 递归 和 迭代 两种写法Morris 可作为加分项。示例运行# root [1, null, 2, 3]# 1# \# 2# /# 3solSolution()print(sol.inorderTraversal(root))# [1, 3, 2]

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询