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

力扣-数据结构-二叉树

94. 二叉树的中序遍历

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

示例 1:

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

示例 2:

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

示例 3:

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

方法一:递归实现(最简单)

# Definition for a binary tree node.
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightclass Solution:def inorderTraversal(self, root: TreeNode) -> list[int]:result = []def dfs(node):if not node:returndfs(node.left)result.append(node.val)dfs(node.right)dfs(root)return result

方法二:迭代实现(使用栈)

class Solution:def inorderTraversal(self, root: TreeNode) -> list[int]:result = []stack = []current = rootwhile current or stack:while current:stack.append(current)current = current.left  # 一直往左走current = stack.pop()result.append(current.val)current = current.right  # 然后往右走return result

相关文章:

  • 20250429在Ubuntu 20.04.6下安装VMware Workstation16
  • 三种机器学习类型
  • SDC命令详解:使用get_nets命令进行查询
  • 目标检测和目标跟踪的区别与联系
  • 前端——CSS1
  • IAP远程升级入门讲解
  • ​Indira量化APP集成IAS 2.0服务器矩阵协议,正式更新上线苹果App Store
  • conda添加新python版本环境,如何激活和销毁
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(4):自定义传输层开发
  • 云钥科技红外短波工业相机
  • -webkit-line-clamp 的渲染机制
  • (2)python之虚拟环境管理工具venv和anaconda
  • TRAE历史版本下载参考
  • 【LeetCode】彩灯装饰记录 III
  • YOLO12改进-模块-引入边缘 - 可学习局部显著核模块LLSKM 引导网络捕捉小目标的点、边缘等显著特征,提升检测敏感性与多尺度适应性。
  • 为网页LOGO视频增加电影质感表现
  • 论文阅读的三个步骤
  • 【语法】C++的继承
  • 篮球足球体育球员综合资讯网站模板
  • hutools工具类中isNotEmpty与isNotBlank区分
  • 力箭二号火箭成功进行满载起竖试验,计划今年首飞发射轻舟飞船
  • 巴西外长维埃拉:国际形势日益复杂,金砖国家必须发挥核心作用
  • 当初没有珍惜巴特勒的热火,被横扫出局后才追悔莫及
  • 怒江州委常委、泸水市委书记余剑锋调任云南省委省直机关工委副书记
  • 消费维权周报|上周违规经营类投诉较多,涉诱导加盟等
  • 滨江集团去年营收约691亿元,尚未结算的预收房款1253亿元