zoukankan      html  css  js  c++  java
  • 二叉树前中后序遍历非递归实现

    package MyExc;
    
    import java.util.Stack;
    
    class TreeNode{
        int data;
        TreeNode left;
        TreeNode right;
    }
    
    
    public class BinaryTree {
        public void preOrder(TreeNode head){
            Stack<TreeNode> stack = new Stack<>();
            stack.add(head);
            while(!stack.isEmpty()){
                head=stack.pop();
                System.out.println(head.data);
                if(head.right==null){
                    stack.push(head.right);
                }
                if(head.left==null){
                    stack.push(head.left);
                }
            }
        }
    
        public void inOrder(TreeNode head){
            Stack<TreeNode> stack = new Stack<>();
            //只要不为空,一直往左走
            if(head!=null){
                head=head.left;
            }else{//为空,弹出一个,然后向右走一步
                head=stack.pop();
                System.out.println(head.data);
                head = head.right;
            }
        }
    
        public void postOrder(TreeNode head){
            Stack<TreeNode> stack = new Stack<>();
            Stack<TreeNode> help = new Stack<>();
            stack.push(head);
    
            while (!stack.isEmpty()){
                head = stack.pop();
                help.push(head);
                if(head.left!=null){
                    stack.push(head.left);
                }
                if(head.right!=null){
                    stack.push(head.right);
                }
                while (!help.isEmpty()){
                    System.out.println(help.pop().data);
                }
            }
        }
    }
    
  • 相关阅读:
    图片垂直居中的方法(适合只有一行文字和图片)
    微信小程序 this.setData() 详解
    phpstorm 2017激活码(方法)
    WebSocket 协议 详解
    容器装不下内容时,显示滚动条
    Restore IP Addresses
    Reverse Linked List II
    Subsets II
    Decode Ways
    Gray Code
  • 原文地址:https://www.cnblogs.com/kristse/p/BinaryTree.html
Copyright © 2011-2022 走看看