zoukankan      html  css  js  c++  java
  • 让我们来写个算法吧,(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 

  • 相关阅读:
    Linux学习——操作文件与目录
    链表去重
    Android主题换肤 无缝切换
    android 换肤模式总结
    NotificationListenerService不能监听到通知
    判断app是否在后台
    模拟接听电话的方法,兼容华为android5.0以上设备
    Windows下安装破解JIRA6.3.6
    一些as的配置
    Android BLE开发——Android手机与BLE终端通信初识
  • 原文地址:https://www.cnblogs.com/leaveast/p/12381462.html
Copyright © 2011-2022 走看看