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

    }

}
相关推荐
Flittly5 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了5 小时前
Java 生成二维码解决方案
java·后端
人活一口气10 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP11 小时前
Vibe Coding -- 完整项目案例实操
java
荣码11 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing11 小时前
Google第三方授权登录
java·后端·程序员
明月光81811 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑21 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯21 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java