搖擺列印二叉樹

2022-05-31 18:51:11 字數 727 閱讀 7786

問題

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。

分析:(1)對樹進行層次遍歷:使用佇列

(2)需要單獨記錄每一層的序列:兩個佇列交替使用

code:

//

樹節點public

class

treenode

}public arraylist>print(treenode proot)

queue

queue = new queue[2];

queue[0] = new arraydeque<>();//

奇數行 queue[1] = new arraydeque<>();//

偶數行int count=1; //

記錄當前到達的層數

queue[1].add(proot);

while(!queue[0].isempty() || !queue[1].isempty())

if(temp.right!=null

) }

//偶數行:翻轉序列

if(count%2==0)

alllist.add(list);

count++;

}return

alllist;

}

二叉樹列印

舉例 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更...

二叉樹列印

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

列印二叉樹

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