我們可以利用隊(duì)列來(lái)層序遍歷整棵二叉樹(shù)。為了實(shí)現(xiàn)利用隊(duì)列遍歷二叉樹(shù),我們?cè)诿看窝h(huán)的開(kāi)始是統(tǒng)計(jì)當(dāng)前隊(duì)列中的個(gè)數(shù)而后進(jìn)行循環(huán)。在每次的循環(huán)當(dāng)中,我們將當(dāng)前節(jié)點(diǎn)的左右子節(jié)點(diǎn)加入隊(duì)列中并在下一次循環(huán)中進(jìn)行遍歷。其中,為了實(shí)現(xiàn)鋸齒形的層序遍歷,我們需要判斷當(dāng)前深度是否為2的倍數(shù),若為2的倍數(shù)則說(shuō)明當(dāng)前層的遍歷需要進(jìn)行逆序操作,我們將逆序操作后的數(shù)組加入最終結(jié)果當(dāng)中。
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;
}
};
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧