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);

    }

}
相关推荐
灵感菇_2 分钟前
Java 锁机制全面解析
java·开发语言
indexsunny2 分钟前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
娇娇乔木16 分钟前
模块十一--接口/抽象方法/多态--尚硅谷Javase笔记总结
java·开发语言
saber_andlibert28 分钟前
TCMalloc底层实现
java·前端·网络
wangjialelele31 分钟前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
m0_4811473337 分钟前
拦截器跟过滤器的区别?拦截器需要注册吗?过滤器需要注册吗?
java
Coder_Boy_40 分钟前
基于SpringAI的在线考试系统-相关技术栈(分布式场景下事件机制)
java·spring boot·分布式·ddd
独自破碎E41 分钟前
【BISHI15】小红的夹吃棋
android·java·开发语言
冻感糕人~43 分钟前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
啦啦啦_99991 小时前
Redis实例-2
java