二叉樹的層次遍歷

2021-07-30 16:50:37 字數 768 閱讀 2012

題目:

給出一棵二叉樹,返回其節點值的層次遍歷(逐層從左往右訪問)

您在真實的面試中是否遇到過這個題?

yes

樣例給一棵二叉樹

3

/ \9 20

/ \

15 7

返回他的分層遍歷結果:

[

[3],

[9,20],

[15,7]

]

**:
class solution 

v2.push_back(v1);

v1.clear();

}return v2;

}};

感想:這題實在借鑑了別人的**後寫出的,思路是返回值是乙個以向量為元素的向量,先在函式外定義兩個向量std::vector> v2;和std::vectorv1;將一層的節點的數值放入v1,完成乙個v1的放入就將v1為乙個元素放入v2中,清空v1,便於下一層的節點的數進入v1中。建立乙個佇列暫存一層的結點,符合先進先出的原則。先將跟節點放入佇列中,記錄佇列的節點的個數。最開始將根節點放入佇列,長度為q.size(),並且迴圈這些次,保證了一層的節點的值進入同乙個v1。將節點的數值放入v1中,如果當前節點的左節點不是空就放入佇列,右節點相同,按q.soze()迴圈完放入v2,同時清空v1。當佇列中再無節點時結束程式,反回v2。

層次遍歷二叉樹

問題 假定根節點位於第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...