我們可以利用隊列來層序遍歷整棵二叉樹。為了實現利用隊列遍歷二叉樹,我們在每次循環的開始是統計當前隊列中的個數而后進行循環。在每次的循環當中,我們將當前節點的左右子節點加入隊列中并在下一次循環中進行遍歷。其中,為了實現鋸齒形的層序遍歷,我們需要判斷當前深度是否為2的倍數,若為2的倍數則說明當前層的遍歷需要進行逆序操作,我們將逆序操作后的數組加入最終結果當中。
class Solution {public:
vector>result;
queueq;
vector>zigzagLevelOrder(TreeNode *root) {int depth = 1;
if (!root) return {};
q.push(root);
while (!q.empty()) {int currentLevelSize = q.size();
vectortemp_res;
for (int i = 0; i< currentLevelSize; ++i) {TreeNode *cur = q.front();
q.pop();
temp_res.emplace_back(cur->val);
if (cur->left) q.push(cur->left);
if (cur->right) q.push(cur->right);
}
if (depth % 2 == 0) reverse(temp_res.begin(), temp_res.end());
++depth;
result.emplace_back(temp_res);
}
return result;
}
};
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
文章標題:LeetCode-103-二叉樹的鋸齒形層序遍歷-創新互聯
文章鏈接:http://vcdvsql.cn/article8/pppop.html
成都網站建設公司_創新互聯,為您提供電子商務、面包屑導航、搜索引擎優化、建站公司、營銷型網站建設、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯