力扣-数据结构-二叉树

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
相关推荐
颜酱7 分钟前
二分图核心原理与判定算法
javascript·后端·算法
筱砚.25 分钟前
C++——lambda
开发语言·c++·算法
Eward-an39 分钟前
LeetCode 76. 最小覆盖子串(详细技术解析)
python·算法·leetcode·职场和发展
guygg8842 分钟前
基于ADMM的MRI-PET高质量图像重建算法MATLAB实现
开发语言·算法·matlab
李昊哲小课44 分钟前
Python itertools模块详细教程
数据结构·python·散列表
moonlight030444 分钟前
类加载子系统
java·jvm·算法
baivfhpwxf20231 小时前
ACS X轴回零程序 项目实战版
网络·数据库·算法
一叶落4381 小时前
LeetCode 219. 存在重复元素 II(C语言详解)
算法·哈希算法·散列表
像污秽一样1 小时前
算法设计与分析-习题2.4
数据结构·算法·排序算法
不想看见4041 小时前
Reverse Bits位运算基础问题--力扣101算法题解笔记
笔记·算法·leetcode