從上往下列印出二叉樹的每個節點,同層節點從左至右列印。
第一種是輸出格式無要求的**:
/*
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...