劍指offer系列49 把二叉樹列印成多行

2022-04-03 02:12:29 字數 361 閱讀 3441

有了上乙個之字形列印二叉樹,這個題就比較簡單了。

首先分析這道題的結構,一行一行的輸出。

1.如果第一行順序儲存,也就是先存左邊在存右邊。那麼輸出的時候也要同樣的先左邊後右邊的順序。這就是先進先出,所以用佇列。

2.如果不順序存,使用棧來存。第二行就先右邊在左邊,必須這樣第一行輸出的時候才可以先左後右。存第三行是根據第二行的彈出順序決定的。因為第二行的彈出順序是從左向右,所以第三行的第乙個元素必須是第二行左邊元素的子樹。也就是在棧底。也就是說第三行開始的元素放在棧底只能最後輸出,這樣必然是不對的。

class

solution

}return

re; }

};

劍指offer系列 二叉樹的深度

題目描述 輸入一棵二叉樹,求其深度 樹的深度定義為 從根節點到葉子節點的路徑長度的最大值 示例 分析 對每個節點而言,以該節點為根節點的樹的深度為左子樹和右子樹深度的較大值加1.因此用遞迴可以很容易的實現 int depth treenode root 分析 同樣可以用遞迴來實現。為了使每個節點只遍...

劍指offer 二叉樹 二叉樹搜尋樹

package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...

劍指Offer 把二叉樹列印成多行

題目描述 從上到下按層列印二叉樹,同層結點按從左向右的順序列印,每一層列印到一行。例如8 6 10 5 7 9 11 類似於按層遍歷二叉樹,利用廣度優先遍歷的思想,選擇stl的佇列。step1 把起始節點放到佇列當中。step2 每一次從佇列頭部取出乙個結點,遍歷過這個節點後,把它能到達的其他節點 ...