• 二叉树的先序中序后序遍历


    package Sort;
    import java.util.Arrays;
    import java.util.ArrayList;
    import java.util.Stack;
    public class BubbleSort {
        
        public class TreeNode {
            int val = 0;
            TreeNode left = null;
            TreeNode right = null;
    
            public TreeNode(int val) {
                this.val = val;
    
            }
        }
        
        public void preTraversal(TreeNode proot)
        {
            
            ArrayList<Integer> list = new ArrayList<Integer>();
            Stack<TreeNode> stack = new Stack<TreeNode>();
            TreeNode node = proot;
            while(node!=null || !stack.isEmpty())
            {
                if(node!=null)
                {
                    list.add(node.val);
                    stack.push(node);
                    node  = node.left;
                }
                else
                {
                    node = stack.pop();
                    node = node.left;    
                }
            }
        }
        public void InTTraversal(TreeNode proot)
        {
            Stack<TreeNode>stack = new Stack<TreeNode>();
            ArrayList<Integer> list = new ArrayList<Integer>();
            
            TreeNode node = proot;
            while(node!=null || !stack.isEmpty())
            {
                if(node!=null)
                {
                    stack.push(node);
                    node = node.left;
                }
                else
                {
                    node = stack.pop();
                    list.add(node.val);
                    node = node.right;
                }
            }
        }
        
        public void postTraversal(TreeNode proot)
        {
            ArrayList<Integer> list = new ArrayList<Integer>();
            Stack<TreeNode> stack = new Stack<TreeNode>();
            Stack<TreeNode>output = new Stack<TreeNode>();//构造一个中间栈来存储逆后序遍历的结果  
            
            TreeNode node =proot;
            while(node!=null || !stack.isEmpty())
            {
                if(node!=null)
                {
                    stack.push(node);
                    output.push(node);
                    node = node.right;
                }
                else{
                    node = stack.pop();
                    node = node.left;
                }
            }
            while(!output.isEmpty())
            {
                list.add(output.pop().val);
            }
        }
        
        public void theFirstTraversal(TreeNode root) {  //先序遍历  
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(root.val);
            if (root.left != null) {  //使用递归进行遍历左孩子  
                theFirstTraversal(root.left);  
            }  
            if (root.right != null) {  //递归遍历右孩子  
                theFirstTraversal(root.right);  
            }  
        }  
        public void INTraversal(TreeNode root) {  //先序遍历  
            ArrayList<Integer> list = new ArrayList<Integer>();
            
            if (root.left != null) {  //使用递归进行遍历左孩子  
                INTraversal(root.left);  
            }  
            list.add(root.val);
            if (root.right != null) {  //递归遍历右孩子  
                INTraversal(root.right);  
            }  
        }  
        public void PostTraversal(TreeNode root) {  //先序遍历  
            ArrayList<Integer> list = new ArrayList<Integer>();
            
            if (root.left != null) {  //使用递归进行遍历左孩子  
                theFirstTraversal(root.left);  
            }  
            if (root.right != null) {  //递归遍历右孩子  
                theFirstTraversal(root.right);  
            }
            list.add(root.val);
        }  
        
        
    }
  • 相关阅读:
    Drcom账户管理Server端解说
    Hadoop常见异常及其解决方式
    PHP 获取网络接口文件流
    【刷题小记67】三角形面积
    Tiny语言编译器简单介绍
    矩阵十题【六】 poj3070 Fibonacci
    函数名称
    设计模式--6大原则--开闭原则
    LeetCode96:Unique Binary Search Trees
    [Swift]LeetCode958. 二叉树的完全性检验 | Check Completeness of a Binary Tree
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/11088559.html
Copyright © 2020-2023  润新知