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);
        }
    }
}
相关推荐
aaaameliaaa2 小时前
字符函数和字符串函数
c语言·笔记·算法
圆山猫2 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管3 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨3 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
月疯3 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡3 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯4 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
萧瑟余晖4 小时前
Java深入解析篇九之NIO详解
java·网络·nio
Achou.Wang4 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One9854 小时前
高进度算法模板速记(待完善)
java·前端·算法