1.缺点:递归的方式会创建栈帧,这种方式效率低;

2.递归的思想:对任意一个节点,都先访问发的子节点,在访问右节点;

3.前序遍历就是在:遍历开始之前读取;

package com.ydlclass.tree;

public class RecursiveBinaryTree {
    //递归遍历二叉树
    private static class Node{//静态内部类
        Integer data;
        Node left;
        Node right;

        public Node(Integer data) {
            this.data = data;
        }
    }
    //递归方法遍历二叉树
    private static void recursiveTree(Node node){
           if(node == null){
               return;
           }
           recursiveTree(node.left);
           recursiveTree(node.right);
    }

    //前序的方法遍历
    private static void preOrder(Node node){
        if (node == null){
            return;
        }
        System.out.println(node.data);
        preOrder(node.left);
        preOrder(node.right);
    }

    //中序的方法遍历
    private static void midOrder(Node node){
        if (node == null){
            return;
        }
        midOrder(node.left);
        System.out.println(node.data);
        midOrder(node.right);
    }

    private static void postOrder(Node node){
        if (node == null){
            return;
        }
        postOrder(node.left);
        postOrder(node.right);
        System.out.println(node.data);
    }


    public static void main(String[] args) {
        Node root = new Node(1);
        root.left = new Node(2);
        root.right = new Node(3);
        root.left.left = new Node(4);
        root.left.right = new Node(5);
        root.right.left = new Node(6);
        root.right.right = new Node(7);

        postOrder(root);

    }

}