十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章給大家介紹怎么解析python二叉樹的右視圖,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、佳木斯網(wǎng)站維護(hù)、網(wǎng)站推廣。
二叉樹的右視圖
給定一棵二叉樹,想象自己站在它的右側(cè),按照從頂部到底部的順序,返回從右側(cè)所能看到的節(jié)點(diǎn)值。
示例:
輸入: [1,2,3,null,5,null,4]
輸出: [1, 3, 4]
解釋:![]()
與之前二叉樹的層次遍歷類似的,該問題需要用到隊(duì)列,
建立一個(gè)queue
遍歷每層的節(jié)點(diǎn)時(shí),把下一層的節(jié)點(diǎn)都存入到queue中
每當(dāng)開始新一層節(jié)點(diǎn)的遍歷之前,先把新一層最后一個(gè)節(jié)點(diǎn)值存到結(jié)果中
動畫演示GIF加載有點(diǎn)慢,請稍等片刻^_^
1class Solution {
2public:
3 vector rightSideView(TreeNode *root) {
4 vector res;
5 if (!root) return res;
6 queue q;
7 q.push(root);
8 while (!q.empty()) {
9 res.push_back(q.back()->val);
10 int size = q.size();
11 for (int i = 0; i < size; ++i) {
12 TreeNode *node = q.front();
13 q.pop();
14 if (node->left) q.push(node->left);
15 if (node->right) q.push(node->right);
16 }
17 }
18 return res;
19 }
20};
關(guān)于怎么解析python二叉樹的右視圖就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。