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)),确保返回的是整数列表。

相关推荐
嘻嘻哈哈樱桃几秒前
牛客经典101题解题集--贪心算法+模拟
java·python·算法·贪心算法
AKDreamer_HeXY1 分钟前
QOJ 12255 - 36 Puzzle 题解
数据结构·c++·数学·算法·icpc·qoj
AI科技星10 分钟前
《全域数学》第一部 数术本源 第三卷 代数原本第14篇 附录二 猜想证明【乖乖数学】
人工智能·算法·数学建模·数据挖掘·量子计算
Wect24 分钟前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·typescript
憨波个32 分钟前
【说话人日志】DOVER-Lap:overlap-aware diarization 输出融合算法
人工智能·深度学习·算法·音频·语音识别
叼烟扛炮39 分钟前
C++第四讲:类和对象(下)
c++·算法·类和对象
Rabitebla40 分钟前
vector 的骨架:三根指针、模板陷阱与迭代器失效的第一现场
开发语言·数据结构·c++·算法
代码不停1 小时前
BFS解决floodfill算法题目练习
算法·宽度优先
上弦月-编程1 小时前
C语言指针从入门到实战
java·jvm·算法
WL_Aurora1 小时前
Python 算法基础篇之树和二叉树
python·算法