二叉樹列印

2021-07-12 00:24:35 字數 636 閱讀 4829

舉例:1.初始化時,last=1,把1放入佇列;

2.將1出隊,把1的子孩子2,3放入佇列,更新nlast=3;

3.nlast更新完之後,列印上一次出隊的1,並和last比較,如果相同就列印換行,並更新last=nlast=3;

4.將2出隊,把2的子孩子4放入佇列,更新nlast=4;

5,nlast更新完以後,列印上一次出隊的2,並和last(3)比較,不相同,continue;

6.將3出隊,將3的子孩子5,6放入佇列,更新nlast=6;

7.nlast更新完以後,列印上一次出隊的3,並和last(3)比較, 相同就列印換行,並更新last=nlast=6;

…………

總結就是如下迴圈:(初始化last=根節點)

1.將a出隊,並將a的子孩子入隊,更新nlast=a最後入隊的子孩子;

2.列印上次出隊的傢伙a,並和last比較, 如果相同就列印換行,並更新last=nlast,如果 不相同,則continue

二叉樹列印

給定一顆二叉樹的頭節點head,請按照現在大家看到的這種格式列印 要求列印成 12 主要解決的問題是 如何換行 last 表示正在列印的當前行的最右節點 從左至右遍歷,如果遍歷到last節點,說明該換行了,換行之後,只需要nlast last,繼續下一行的列印過程,一直重複,直到所有的節點都列印完。...

列印二叉樹

之前在了解二叉樹旋轉的時候,為了方便檢視中間狀態,就寫了個以樹狀形式列印二叉樹的函式。起初是使用二叉樹中序遍歷的結果展開的方式,簡單但列印出來的樹有一定的傾斜。例如這棵樹 5 3 7 2 6 8它的中序遍歷結果為 2 3 5 6 7 8 列印出來的結果中,節點 3 和節點 7 不是對稱的。因為節點 ...

二叉樹問題 二叉樹層級列印

給定二叉樹的頭結點,按層級列印二叉樹節點值。從上到下按層遍歷,應該是先遍歷到的節點先輸出。因此用佇列作為輔助結構來解此題。層級遍歷中關鍵點要知道什麼時候換層。用兩個變數last 和nlast,分別指向當前層的最右邊和下一層的最右邊節點。當當前層的最右邊節點從佇列中輸出時,表示這一層遍歷完畢了,此時使...