每日一題 層序遍歷(自頂向下AND自底向上)

2021-08-21 22:19:34 字數 1176 閱讀 9263

前面的文章中我有實現過二叉樹的簡單函式實現,在這就不詳細介紹了,不了解的請戳

今天主要講【層序遍歷】---->面試常考點,必須會哦^ _ ^

【題目】給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:給定二叉樹[3,9,20,null,null,15,7],

3

/ \9 20

/ \

15 7

返回其自頂向下的層次遍歷為:

[

[3][9,20],

[15,7],

]

返回其自底向上的層次遍歷為:

[

[15,7],

[9,20],

[3]]

【**實現】

#includeusing namespace std;

#include#include#includestruct treenode

}; //自頂向下

//class solution

// //用佇列儲存資料---》先進先出

// queuequ;

// qu.push(root);//先將根壓進去;

// while (!qu.empty())

//

// if (topnode->right)

//

// }

// result.push_back(tmp);

// }

// return result;

// }

//};

//自底向上

class solution

queuequ;

qu.push(root);

while (!qu.empty())

if (topnode->right)

}result.push_back(tmp);

} //這時候是按從上往下的順序訪問的,逆轉之後就是自底向上

reverse(result.begin(), result.end());

return result;

}};

每日一題 最大子序和

這道題雖然是簡單題,但我覺得很有趣,o n 的思路其實很簡單 從第乙個元素開始,如果當前元素超過從頭到當前所有元素之和,那麼就把當前元素作為第乙個元素繼續遍歷 class solution def maxsubarray self,nums list int int n len nums curr ...

每日一題 最大子序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。from functools...

每日一題 從前序與中序遍歷序列(C )

題目描述 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 解題思路 1.前序遍歷順序,跟 左 右 中序遍歷順序,左...