二叉樹的先序遍歷及其遞歸思想

在這裏插入圖片描述
關於二叉樹的先序遍歷呢,我們就以上面的二叉樹爲例進行講述:

先序遍歷呢,就是先遍歷他的頭節點,再遍歷他的左子樹,之後再是右子樹。所以顯示遍歷結點A,之後遍歷他的左子樹B,再通過B,遍歷他的左子樹D,再遍歷D的左子樹此時發現D的左子樹爲空,此時再返回B去遍歷他的右子樹E,再通過E遍歷他的左子樹G,在遍歷G的左子樹,此時G的左子樹爲空,返回E再遍歷E的右子樹,也爲空,此時A的左子樹就遍歷完了,返回到A再遍歷他的右子樹C,再遍歷C的左子樹,發現爲空,則遍歷右子樹F,在遍歷F的左子樹發現也爲空,此時A的右子樹也遍歷完了,這時整個二叉樹就遍歷完了,返回A。

所以先序遍歷的順序是:A,B,D,E,G,C,F

下面使用遞歸來實現先序遍歷:

 public static void preOrder(Node root) {
        if (root == null) {
            return;
        }
        System.out.print(root.val);
        preOrder(root.left);
        preOrder(root.right);
    }

在這裏插入圖片描述

這是我大概畫的一個遞歸的內部關係,雖然看起來是吧,但是還是闊以的。
它的打印結果就是我們前面推導的那樣。我們看到的代碼雖然只有那幾行,但是內部的關係還是很複雜的,所以希望我畫的圖對大家的理解有幫助!!

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