前面的文章中我有實現過二叉樹的簡單函式實現,在這就不詳細介紹了,不了解的請戳
今天主要講【層序遍歷】---->面試常考點,必須會哦^ _ ^
【題目】給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹[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.前序遍歷順序,跟 左 右 中序遍歷順序,左...