二叉樹的層次遍歷

2021-08-27 21:14:03 字數 502 閱讀 5686

#includeusing namespace std;

typedef struct node

;vector>levelorder(node*root)

queuequ;

qu.push(root);

while(!qu.empty())

if(tmp->right!=null)

}vec.push_back(vec_tmp)

}return vec;

}int main()

二叉樹層次遍歷思路:使用佇列,先將二叉樹壓入棧中,建立變數儲存佇列的首元素即二叉樹的根,將根節點出隊,將臨時變數的值放入vector容器中。然後判斷左孩子是否為空,不為空則將左孩子入隊。再判斷有孩子是否為空,不為空,將右孩子入隊。判斷佇列是否為空,不為空,將左孩子出隊,將左孩子的值放入vec_tmp中,迴圈結束,將vec_tmp存入二維容器中,最後隊列為空,則直接返回vec,二維容器(儲存二叉樹每一層遍歷的資料)。

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...

二叉樹層次遍歷

層次遍歷二叉樹,每一次儲存在list中,結果按從葉子層到根,從左到右的順序儲存 一 class solution return lists 相當於在先序的基礎上改進,level是每個node所在的層次。如果lists大小和level相等,說明開始新一層的儲存。如果不等,則直接把值存入相應層次的lis...