当前位置: 首页 > article >正文

【leetcode刷题记录】二叉树遍历

中序遍历

public List<Integer> inorderTraversal(TreeNode root) {
//        List<Integer> result = new ArrayList<>();
//        midAccTree(result,root);
//        return result;

        //栈迭代解决
        List<Integer> result = new ArrayList<>();
        Stack<TreeNode> stack = new Stack<>();
        while (root != null || !stack.isEmpty()){
            while (root != null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            result.add(root.val);
            root = root.right;
        }
        return result;
    }



    //中序遍历方法
//    public void midAccTree(List<Integer> res,TreeNode root){
//        if (root == null) return;
//        midAccTree(res,root.left);
//        res.add(root.val);
//        midAccTree(res,root.right);
//
//    }

后序遍历

public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        Stack<TreeNode> stack = new Stack<TreeNode>();
        TreeNode preNode = null;
        while (root != null || !stack.isEmpty()){
            while (root != null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            if (root.right == null || root.right == preNode){
                res.add(root.val);
                preNode = root;
                root = null;
            }else {
                stack.push(root);
                root = root.right;
            }
        }
        return res;
    }

http://www.kler.cn/news/283676.html

相关文章:

  • 易查分如何查询图片?
  • 梧桐数据库(WuTongDB):什么是“顺序扫描”
  • 1.3金融术语的宝典
  • PHP房产管理多终端系统灵活应对各种管理需求系统小程序源码
  • 16.神经网络 - 卷积层
  • Python-MNE-源空间和正模型07:修复BEM和头表面
  • Linux 7 静默安装oracle 19c 单机
  • 深度学习常见面试题(2024.8.30笔记)
  • 如何在知行之桥上通过业务单号查找原始报文?
  • 英文论文格式编辑(二)
  • redis list 单推送消息,批量消费消息,springboot实现
  • Nginx配置实例-负载均衡
  • 密码学(二)---DES、SM、RSA
  • c++中的匿名对象及内存管理及模版初阶
  • 【系统架构师软考】计算机网络知识(四)
  • 在类Unix操作系统(如Linux)上运行Windows应用程序方法小记
  • flutter和原生Android以及IOS开发相比有什么优缺点?
  • Gradio学习——图像流输出
  • ShenNiusModularity项目源码学习(3:用户登录)
  • MFC工控项目实例之七点击下拉菜单弹出对话框
  • Python使用总结之Flask-SocketIO介绍
  • 查看显卡cuda版本
  • PD协议沟通过程
  • 最大池化、非线性激活、线性层
  • 【C++ Qt day3】
  • PrimeVue DataTable 属性值解析
  • validationtools中按键测试选项光标移除
  • JavaEE 第18节 TCPUDP优缺点(对比)
  • 基于SVM的手势识别,SVM工具箱详解,SVM工具箱使用注意事项
  • 【策略方法】设计模式:构建灵活的算法替换方案