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);
        }
    }
}
相关推荐
TDengine (老段)几秒前
TDengine 运维——巡检工具(定期检查)
java·大数据·运维·物联网·时序数据库·tdengine·涛思数据
~山有木兮5 分钟前
new和delete的理解
c++·算法
forestsea11 分钟前
Maven 仓库类型与镜像策略
java·maven
忆雾屿31 分钟前
云原生时代 Kafka 深度实践:03进阶特性与最佳实践
java·分布式·后端·kafka
一只自律的鸡32 分钟前
八N皇后问题
算法·深度优先
向哆哆1 小时前
Java 微服务架构设计:服务拆分与服务发现的策略
java·微服务·服务发现
✿ ༺ ོIT技术༻1 小时前
笔试强训:Day6
数据结构·c++·算法
天天摸鱼的java工程师1 小时前
Redis 是单线程的吗?带你全面了解 Redis 的线程模型与设计哲学
java·后端
天天摸鱼的java工程师1 小时前
Spring Boot 3 整合 Knife4j:从环境搭建到 API 文档生成实战
java·后端
述雾学java1 小时前
Spring Boot 整合 Spring Security
java·spring boot·spring security