【面試題】從上向下列印陣列|||
題目
請實現一個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。
判斷奇偶翻轉陣列
根據題目就是翻轉一部分返回的答案
其他的內容和從上列印陣列||的內容一樣
我自己寫了一個翻轉陣列的方法
然後判斷奇偶性 在合適的時機翻轉返回的陣列即可
void reverse(vector<int> &a) {
int left = 0;
int right = a.size() - 1;
while (left < right) {
swap(a[left], a[right]);
right--;
left++;
}
}
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> ans;
queue<TreeNode*> q;
q.push(root);
if (root == NULL) {
return ans;
}
bool flag = true;//是否是第一行
while (!q.empty()) {
vector<int> t;
int count = q.size();
while (count--) {
TreeNode* temp = q.front();
q.pop();
t.push_back(temp->val);
if (temp->left != NULL) {
q.push(temp->left);
}
if (temp->right != NULL) {
q.push(temp->right);
}
}
ans.push_back(t);
}
for (int i = 0; i < ans.size(); i++) {
if (flag) {
flag = !flag;
}
else {
reverse(ans[i]);
flag = !flag;
}
}
return ans;
}
由於時間原因 其他解法在之後我會更新
相關文章
- golang 陣列面試題Golang陣列面試題
- 陣列的一些面試題陣列面試題
- 演算法面試:陣列編碼面試問題演算法面試陣列
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- 一道遞迴陣列面試題遞迴陣列面試題
- leetcode面試經典150題- 189. 輪轉陣列LeetCode面試陣列
- 面試必備:陣列和字串面試陣列字串
- python中怎麼列印陣列Python陣列
- Google 面試題 | 3個非重複子陣列最大和Go面試題陣列
- 第四章:多維陣列和矩陣 --------------- 4.1 基礎題:順時針列印二維陣列陣列矩陣
- 第四章:多維陣列和矩陣 ------------- 4.3 基礎題:Z形列印二位陣列陣列矩陣
- 面試必問的陣列去重複面試陣列
- Java面試題整理《上》Java面試題
- 劍指offer之順序列印陣列陣列
- 面試-陣列和連結串列的區別面試陣列
- 記一次面試一直出現的題——陣列去重面試陣列
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- GitHub 上的面試題庫Github面試題
- java面試題--基礎上Java面試題
- 從面試題看 JS 事件迴圈與 macro micro 任務佇列面試題JS事件Mac佇列
- 面試官問你陣列和ArrayList怎麼答?面試陣列
- JS面試之陣列的幾個不low操作JS面試陣列
- 陣列題目陣列
- 陣列 題目陣列
- 面試最常問的陣列轉樹,樹轉陣列 c++ web框架paozhu實現面試陣列C++Web框架
- 訊息佇列常見面試題佇列面試題
- 從兩道面試題說起面試題
- 面試題 - 使用執行緒交替列印奇數偶數面試題執行緒
- 面試題-使用執行緒交替列印奇數偶數面試題執行緒
- C語言指標和陣列筆試題C語言指標陣列筆試
- 【Java面試】Java面試題基礎系列212道(上)Java面試題
- python以16進位制列印位元組陣列Python陣列
- C++陣列在年曆列印中的運用C++陣列
- 【面試系列】之五:關於字串以及陣列的操作面試字串陣列
- 演算法面試通關40講 - 番外 - 陣列演算法面試陣列
- JS陣列專題1️⃣ ➖ 陣列扁平化JS陣列
- php陣列問題PHP陣列