• 让我们来写个算法吧,(2)二叉树的前序,中序,后序 遍历


    树的类结构

    public class TreeNode {
        
        TreeNode left;
        
        TreeNode right;
        
        int value;
        
        public TreeNode(int value ) {
            this.value = value;
        }
    
    }

    自己生成二叉树 

    private TreeNode createTreeNode() {
            
            TreeNode[] node = new TreeNode[10];// 以数组形式生成一棵完全二叉树
            
            for (int i = 0; i < 10; i++) {
                node[i] = new TreeNode(i);
            }
            
            for (int i = 0; i < 10; i++) {
                if (i * 2 + 1 < 10)
                    node[i].left = node[i * 2 + 1];
                if (i * 2 + 2 < 10)
                    node[i].right = node[i * 2 + 2];
            }
    
            return node[0];
        }

    生成的二叉树长这个样子

     二叉树的前序遍历就是,先输出根节点,再输出左子节点,最后输出右子节点

    private void preOrderRe(TreeNode node) {
            if(null == node) {
                return;
            }
            System.out.print(node.value+" ");
            preOrderRe(node.left);
            preOrderRe(node.right);
        }

    遍历结果 : 0 1 3 7 8 4 9 2 5 6 

    二叉树的中序遍历就是,先输出左子节点,再输出根节点,最后输出右子节点

    private void midOrderRe(TreeNode node) {
            if(null == node) {
                return;
            }
            if(node.left!=null) {
                midOrderRe(node.left);
            }
            System.out.print(node.value+" ");
            
            midOrderRe(node.right);
        }

    遍历结果 : 7 3 8 1 9 4 0 5 2 6

    二叉树的后中序遍历就是,先输出左子节点,再输出右子节点,最后输出根节点

        private void postOrderRe(TreeNode node) {
            if(null == node) {
                return;
            }
            if(node.left!=null) {
                postOrderRe(node.left);
            }
            postOrderRe(node.right);
            
            System.out.print(node.value+" ");
            
        }

    遍历结果 : 7 8 3 9 4 1 5 6 2 0 

  • 相关阅读:
    IDEA使用Git传放项目
    前端自适应知识点
    数据可视化
    vue调用Moment显示时间
    java判断通常的逻辑
    java常用的逻辑
    java匿名内部类练习
    java 匿名内部类
    java 内部类定义在局部时需要注意的情况
    java内部类的定义原则
  • 原文地址:https://www.cnblogs.com/leaveast/p/12381462.html
Copyright © 2020-2023  润新知