二叉樹遍歷

賦值二叉樹

二叉樹形式如下

樹形結構

public class TreeNode {

    public int value;
    public TreeNode left;
    public TreeNode right;

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

賦值

public static void main(String[] args) {
        //給二叉樹賦值
        TreeNode[] node = new TreeNode[7];
        for (int i = 0; i < 7; i++) {
            node[i] = new TreeNode(i);
        }
        for (int i = 0; i < 7; i++) {
            if (i * 2 + 1 < 7)
                node[i].left = node[i * 2 + 1];
            if (i * 2 + 2 < 7)
                node[i].right = node[i * 2 + 2];
        }
        preOrderRe(node[0]);

        midOrder(node[0]);

        postOrderRe(node[0]);
    }

前序遍歷

根 ->左 ->右

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

中序遍歷

左 ->根 ->右

private static void midOrder(TreeNode treeNode) {
        if (treeNode == null) {
            return;
        } else {
            midOrder(treeNode.left);
            System.out.print(treeNode.value +" ");
            midOrder(treeNode.right);
        }
    }

後續遍歷

左 ->右 ->根

private static void postOrderRe(TreeNode treeNode) {
        if (treeNode == null) {
            return;
        } else {
            midOrder(treeNode.left);
            midOrder(treeNode.right);
            System.out.print(treeNode.value +" ");
        }
    }

程序執行結果:

前序遍歷:0 1 3 4 2 5 6 
中序遍歷:3 1 4 0 5 2 6 
後序遍歷:3 1 4 5 2 6 0 

參考:https://blog.csdn.net/coder__666/article/details/80349039

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章