麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Leetcode 199. Binary Tree Right Side View

2019-11-10 19:59:23
字體:
供稿:網(wǎng)友

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

For example: Given the following binary tree,

1 <--- / /2 3 <--- / / 5 4 <---

You should return [1, 3, 4].

s思路: 1. 樹的問題,根本是遍歷。這道題,站在右邊,看到的是一層一層的,那么用bfs,用queue來存每一層的數(shù),然后把每一層最后一個數(shù)輸出即可! 2. 如果非要用dfs來,怎么辦?這樣的困境,之前也遇到過。回憶一下,發(fā)現(xiàn)居然有一個套路,可以讓dfs同樣實現(xiàn)bfs才能干的活。這個套路是這樣的:設(shè)置一個level變量來跟蹤目前變量所在的層數(shù),如果這個層數(shù)比vector的size大,那就說明第一次遇到,那么就需要resize vector來保存這個數(shù);如果這個層數(shù)比vector的size小,說明以前遇到過,而且這個數(shù)在左側(cè),因此直接覆蓋這個數(shù)在vector中的值。這樣,最后在vector中留下來的數(shù)就是從右側(cè)看到的數(shù)。通過描述這個過程,發(fā)現(xiàn)dfs每個數(shù)都要寫一遍在vector中,而bfs只有滿足條件的才往里寫! 3. 為啥不讓找從左側(cè)看到的樹呢?因為太容易了,所有的遍歷都是從左邊開始。反而,從右邊看的視圖不容易得到。

//方法1:bfs,queueclass Solution {public: vector<int> rightSideView(TreeNode* root) { // vector<int> res; if(!root) return res; queue<TreeNode*> QQ; TreeNode* cur=root; qq.push(cur); while(!qq.empty()){ int sz=qq.size(); for(int i=0;i<sz;i++){ cur=qq.front(); qq.pop(); if(i==sz-1) res.push_back(cur->val); if(cur->left) qq.push(cur->left); if(cur->right) qq.push(cur->right); } } return res; }};//方法2:dfs,recursive,in-orderclass Solution {public: void helper(TreeNode* root,vector<int>&res,int level){ if(!root) return; if(res.size()<level+1){ res.resize(level+1); } res[level]=root->val; //根 helper(root->left,res,level+1);//左 helper(root->right,res,level+1);//右 } vector<int> rightSideView(TreeNode* root) { // vector<int> res; helper(root,res,0); return res; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 污污的视频在线观看 | 亚洲精品在线观看免费 | 女人久久久www免费人成看片 | 国产一区二区三区黄 | 一级大黄毛片免费观看 | 成人精品视频在线 | 亚洲精品一区二区三区大胸 | 媚药按摩痉挛w中文字幕 | 999久久久国产999久久久 | 羞羞视频在线免费 | 久久久久国产精品久久久久 | 欧美成人午夜一区二区三区 | 午夜精品在线视频 | 国产精品免费久久久久 | 欧美日韩在线播放一区 | 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 | 成人免费一区二区三区 | 欧美极品欧美精品欧美视频 | 男女一边摸一边做羞羞视频免费 | 精品久久久久久久久久久久 | 国产精品高潮视频 | 末成年女av片一区二区 | 欧美日韩亚洲视频 | 国产一区二区精品免费 | 视频一区二区三区视频 | 人人做人人看 | 日本中文字幕网址 | 亚州欧美视频 | 国产精品成人av片免费看最爱 | 国产精品久久久久久久久粉嫩 | 日韩中文字幕一区二区三区 | 久久久久久久.comav | 蜜桃精品视频 | 在线无码| 欧美在线观看视频一区二区 | 免费试看av | 奶子吧naiziba.cc免费午夜片在线观看 | av免费在线网 | 国产亚洲精品久久久久婷婷瑜伽 | 在线成人免费观看www | 91精品国产91久久久久久不卞 |