zoukankan      html  css  js  c++  java
  • 【LeetCode】二叉搜索树的前序,中序,后续遍历非递归方法

    前序遍历

     public List<Integer> preorderTraversal(TreeNode root) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            Stack<TreeNode> stack=new Stack<TreeNode>();
            TreeNode p=root;
            while(!stack.isEmpty()||p!=null){
                if(p!=null){
                    stack.push(p);
                    list.add(p.val); // Add before going to children
                    p=p.left;
                }else{
                    TreeNode node=stack.pop();
                    p=node.right;
                }
            }
    		return list;
        }  

    中序遍历

     public List<Integer> inorderTraversal(TreeNode root) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            Stack<TreeNode> stack=new Stack<TreeNode>();
            TreeNode p=root;
            while(!stack.isEmpty()||p!=null){
                if(p!=null){
                    stack.push(p);
                    p=p.left;
                }else{
                    TreeNode node=stack.pop();
                    list.add(node.val);// Add after all left children
                    p=node.right;
                }
            }
    		return list;
        }
    

    后序遍历

    public List<Integer> postorderTraversal(TreeNode root) {
            LinkedList<Integer> list = new LinkedList<Integer>();
            Stack<TreeNode> stack=new Stack<TreeNode>();
            TreeNode p=root;
            while(!stack.isEmpty()||p!=null){
                if(p!=null){
                    stack.push(p);
                    list.addFirst(p.val);// Reverse the process of preorder
                    p=p.right;
                }else{
                    TreeNode node=stack.pop();
                    p=node.left;
                }
            }
    		return list;
        }
    

      

      

  • 相关阅读:
    DTOJ #3328. 开箱子(unboxing)
    dtoi4649 光明
    dtoi4539「TJOI / HEOI2016」序列
    dtoi3031 交错和查询 (sum)
    dtoi4375「BJOI2019」删数
    dtoi4266 exchange
    dtoi4680 红黑兔
    dtoi1363 楼房重建 (rebuild)
    dtoi1927 [ONTAK2010]Peaks加强版
    dtoi4538 「TJOI / HEOI2016」排序
  • 原文地址:https://www.cnblogs.com/zeze/p/9599773.html
Copyright © 2011-2022 走看看