力扣-数据结构-二叉树

94. 二叉树的中序遍历

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

示例 1:

复制代码
输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

复制代码
输入:root = []
输出:[]

示例 3:

复制代码
输入:root = [1]
输出:[1]

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

python 复制代码
# 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: TreeNode) -> list[int]:
        result = []

        def dfs(node):
            if not node:
                return
            dfs(node.left)
            result.append(node.val)
            dfs(node.right)

        dfs(root)
        return result

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

python 复制代码
class Solution:
    def inorderTraversal(self, root: TreeNode) -> list[int]:
        result = []
        stack = []
        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
相关推荐
源代码•宸2 分钟前
Golang原理剖析(逃逸分析)
经验分享·后端·算法·面试·golang··内存逃逸
重生之后端学习8 分钟前
25. K 个一组翻转链表
java·数据结构·算法·leetcode·职场和发展
CoderCodingNo15 分钟前
【GESP】C++五级练习题 luogu-P2242 公路维修问题
开发语言·c++·算法
不知名XL23 分钟前
day30 动态规划03
算法·动态规划
张祥64228890423 分钟前
线性代数本质笔记十二
人工智能·算法·机器学习
程序员-King.23 分钟前
day157—回溯—括号生成(LeetCode-22)
算法·leetcode·回溯
Σίσυφος190029 分钟前
视觉矩阵 之 单应矩阵
人工智能·算法·矩阵
虹科网络安全32 分钟前
艾体宝洞察 | 不止步于缓存 - Redis 多数据结构平台的演进与实践
数据结构·redis·缓存
啊阿狸不会拉杆35 分钟前
《机器学习》第五章-集成学习(Bagging/Boosting)
人工智能·算法·机器学习·计算机视觉·集成学习·boosting
信奥卷王35 分钟前
2025年3月GESPC++四级真题解析(含视频)
算法