從上往下列印二叉樹

2021-08-17 09:31:17 字數 708 閱讀 3314

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

第一種是輸出格式無要求的**:

/*

struct treenode

};*/

#include class solution

return res;

}};

第二種是需要按實際二叉樹每層擁有節點的個數進行列印(需要按行列印)

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。每層元素輸出後要換行。

使用 last 記錄當前行的最後乙個元素,nlast 記錄下一行的最後乙個元素(實時更新(指向子孩子))

使用佇列維護,一開始 last = root,root 入隊,當佇列不為空時,執行迴圈:取隊頭元素,將其子孩子入隊,nlast 更新=>指向子孩子,彈出隊頭元素時將元素與 last 比較是否相同,相同即當前行已經輸出到最後乙個元素了(需要換行),此時 nlast 指向下一行的最後乙個元素,將 last = nlast 即可更新 last 值,再繼續執行上述操作直至隊列為空。。

主要**如下:

class solution 

if (front->right != null)

cout << front->val << " ";

if (front == last)

}return ;

}};

從上往下列印二叉樹

從上往下列印二叉樹需要乙個雙端佇列,stl提供了deque容器符合我們的要求,和測試 如下 include include include using namespace std struct binarytreenode binarytreenode createbinarytreenode in...

從上往下列印二叉樹

題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。思路 用佇列儲存將要列印的節點,出佇列時,將左節點和右節點分別加入佇列當中,直到隊列為空,列印完畢。public arraylist integer printfromtoptobottom treenode root queue qu...

從上往下列印二叉樹

題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。程式 include include include struct binarytreenode 函式名稱 createbinarytree 函式功能 通過二叉樹的先序序列建立二叉樹 輸入引數 proot 二叉樹的根節點 st...