leetcode——二叉树的中序遍历(java)

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

示例 1:

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

示例 2:

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

示例 3:

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

解题方法:(二叉树的中序遍历)

1.首先说到中序遍历,先搞清楚原理,中序遍历就是左中右节点依次遍历返回。

2.所以我们先创建一个结果列表,然后建立辅助函数,进入递归,递归条件是,当前二叉树的节点非空。

  • 先递归左节点。

  • 然后将当前的节点值加入结果列表中。

  • 接着进入右节点的递归。

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<Integer> ans = new ArrayList<>();
    public List<Integer> inorderTraversal(TreeNode root) {
        traverse(root);
        return ans;   
    }
    private void traverse(TreeNode node) {
        if (node != null) {
            traverse(node.left);
            ans.add(node.val);
            traverse(node.right);
        }
    }
}
相关推荐
864记忆9 分钟前
Linux操作系统自带的测试内存泄漏的命令
java·linux·运维
Xy-unu16 分钟前
[LLM]AIM: Adaptive Inference of Multi-Modal LLMs via Token Merging and Pruning
论文阅读·人工智能·算法·机器学习·transformer·论文笔记·剪枝
Hcoco_me17 分钟前
算法选型 + 调参避坑指南
算法
Jul1en_22 分钟前
【算法】分治-归并类题目
java·算法·leetcode·排序算法
kangk1223 分钟前
统计学基础之概率(生物信息方向)
人工智能·算法·机器学习
tryxr23 分钟前
volatile 的作用
java·jvm·volatile·指令重排序
再__努力1点23 分钟前
【77】积分图像:快速计算矩形区域和核心逻辑
开发语言·图像处理·人工智能·python·算法·计算机视觉
唯唯qwe-38 分钟前
Day22: 贪心算法 | 区间问题,左/右端点排序
算法·贪心算法
独自归家的兔38 分钟前
Java Robot 详解:系统级鼠标 / 键盘模拟的核心原理与实战
java·开发语言
岳轩子44 分钟前
DDD领域驱动设计:核心概念、实践结构与框架对比
java·spring