二叉树的遍历java

 递归方式:

public class TreeNode {
    public int var;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(int var) {
        this.var = var;
    }
}
public class TreePre {
    public static void main(String[] args) {
        TreeNode root = new TreeNode(1);
        TreeNode one = new TreeNode(2);
        TreeNode two = new TreeNode(3);

        root.right = one;
        one.left = two;
        List<Integer> nodeList = new ArrayList<>();
        treePre(root, nodeList);
        System.out.println("前序遍历:"+nodeList);

        List<Integer> backList = new ArrayList<>();
        treeBack(root, backList);
        System.out.println("后序遍历:"+backList);
        List<Integer> midList = new ArrayList<>();
        treeMid(root, midList);
        System.out.println("中序遍历:"+midList);
    }

    public static List<Integer> treePre(TreeNode root, List<Integer> nodeList) {
        if(root != null) {
            nodeList.add(root.var);
            if(root.left != null) {
                nodeList = treePre(root.left, nodeList);
            }
            if(root.right != null) {
                nodeList = treePre(root.right, nodeList);
            }
        }
        return nodeList;
    }

    public static  List<Integer> treeMid(TreeNode root, List<Integer> nodeList) {
        if(root != null) {

            if(root.left != null) {
                nodeList = treeMid(root.left, nodeList);
            }
            nodeList.add(root.var);
            if(root.right != null) {
                nodeList = treeMid(root.right, nodeList);
            }
        }
        return nodeList;
    }

    public static List<Integer> treeBack(TreeNode root, List<Integer> nodeList) {
        if(root != null) {
            if(root.left != null) {
                nodeList = treeBack(root.left, nodeList);
            }
            if(root.right != null) {
                nodeList = treeBack(root.right, nodeList);
            }
            nodeList.add(root.var);
        }
        return nodeList;
    }
}

 


版权声明:本文为ccmedu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。