劍指offer 從上到下列印二叉樹

2021-10-03 05:37:32 字數 487 閱讀 2067

普通的列印二叉樹很簡單,使用佇列就可以解決。但是我做的這個題目是要將每一層的節點都存起來,而且不同層之間是分開儲存的。其中有個問題就是我們如何去判斷某一層是遍歷完了,然後要到下一層了呢。

我們可以這樣解決,記住每層的個數,這樣遍歷上一層時我們知道上一層個數了就不會遍歷下一層的節點;而遍歷過程中也要把子節點加入到佇列中,這個過程把下一層的節點數也要記住。看**注釋部分比較詳細:

public list

>

levelorder

(treenode root)

if(pop.right != null)

} result.

add(curresult)

; curnum = nextnum;

//然後更新,並把下一層的置0

nextnum =0;

}return result;

}

劍指Offer 從上到下列印二叉樹

2.題目 2 3.題目 3 不分行從上到下列印二叉樹。從上到下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。輸入 8 6 10 57 911輸出 8610 57911這個其實就是層序遍歷。每次列印乙個結點的時候,若該結點有子結點,則讓該結點的子結點放到乙個佇列的末尾。接下來到佇列的首部...

劍指Offer系列32 1 從上到下列印二叉樹

從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 3,9,20,15,7 python definition for a binary tree node.class treenode de...

劍指Offer系列32 2 從上到下列印二叉樹2

從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 python definition for a binary tree node.class ...