94.二叉树的中序遍历

一、递归

java 复制代码
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> list = new Arraylist <> ();//结果列表
        Stack<TreeNode> stack =new Stack <> (); //栈
        TreeNode cur = root ; //指向当前节点
        while (cur! = null ||!stack.isEmpty() ){
            if (cur !=null) {
                stack.push(cur);
                cur = cur.left;// 指向左子树
            }
        else {
            cur = stack.pop();//当前节点为空说明已经到最左侧 弹出上一个根节点
            list.add(cur.val);//添加到结果list中
            cur = cur.right;//指向右子树 
        }
        }
        return list ;
    }
}

二、遍历

java 复制代码
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList <Integer> ();
        inorder (root , res);
        return res ;
    }
    public void inorder(TreeNode root ,List<Integer> res){
        if (root == null){
            return ;
        }
        inorder(root.left , res);
        res.add(root.val);
        inorder(root.right ,res);

    }

}
相关推荐
计算机学姐4 分钟前
基于SpringBoot的在线学习网站平台【个性化推荐+数据可视化+课程章节学习】
java·vue.js·spring boot·后端·学习·mysql·信息可视化
焦糖玛奇朵婷8 分钟前
盲盒小程序开发,盲盒小程序怎么做
java·大数据·服务器·前端·小程序
喵了几个咪10 分钟前
Go 语言 CMS 横评:风行 GoWind 对比传统 PHP/Java CMS 核心优势
java·golang·php
星晨雪海13 分钟前
Spring Boot 常用注解
java·spring boot·后端
whatever who cares17 分钟前
java/android中单例模式详解
android·java
rrrjqy20 分钟前
深入浅出 RAG:基于 Spring AI 的文档分块 (Chunking) 策略详解与实战
java·人工智能·后端·spring
967722 分钟前
mybatis的作用+sql怎么写
java·开发语言·mybatis
devnullcoffee23 分钟前
深度思维与AI工具重塑亚马逊选品:从评论数据挖掘到Agent工作流的工程实践
java·人工智能·数据挖掘·亚马逊运营·亚马逊 asin 数据采集·数据决策
大黄说说26 分钟前
深入.NET内存模型:垃圾回收(GC)机制与性能优化指南
java·jvm·算法
feng尘26 分钟前
CopyOnWriteArrayList源码阅读:并发读写的艺术
java