11.18二叉树中序遍历(递归)

题目:

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

核心思路:

中序遍历(中序遍历的规则是 "左→根→右")的逻辑基于递归思想,对任意一棵二叉树(或子树),遍历步骤严格遵循:

  1. 遍历当前节点的左子树(递归执行中序遍历);
  2. 访问当前节点(例如打印节点值、记录节点数据);
  3. 遍历当前节点的右子树(递归执行中序遍历)。

代码:

python 复制代码
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def inorderTraversal(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[int]
        """
        results = []

        def tranverse(node):
            if node:
                tranverse(node.left)
                results.append(node.val)
                tranverse(node.right)
        tranverse(root)
        return results
        

注意点:

向列表中添加元素时,必须使用 node.val(即 result.append(node.val)),确保返回的是整数列表。

相关推荐
2401_8920709812 小时前
顺序栈(动态数组实现) 超详细解析(C++ 语言 + 可直接运行)
数据结构·c++·顺序栈
卷福同学12 小时前
去掉手机APP开屏广告,李跳跳2.2下载使用
java·后端·算法
漫霂12 小时前
二叉树的翻转
java·数据结构·算法
语戚12 小时前
力扣 51. N 皇后:基础回溯、布尔数组优化、位运算全解(Java 实现)
java·算法·leetcode·力扣·剪枝·回溯·位运算
熊猫钓鱼>_>12 小时前
从零构建大模型可调用的Skill:基于Function Calling的完整指南
人工智能·算法·语言模型·架构·agent·skill·functioncall
py有趣12 小时前
力扣热门100题之螺旋矩阵
算法·leetcode
3秒一个大12 小时前
深入理解 JS 中的栈与堆:从内存模型到数据结构,再谈内存泄漏
前端·javascript·数据结构
xiaoyaohou1112 小时前
003、轻量化改进(一):网络剪枝原理与实战
算法·机器学习·剪枝
我是章汕呐12 小时前
政策评估的“黄金标准”:DID模型从原理到Stata实操
大数据·人工智能·经验分享·算法·回归
2301_8227032013 小时前
光影进度条:鸿蒙Flutter实现动态光影效果的进度条
算法·flutter·华为·信息可视化·开源·harmonyos