Skip to content

Commit f968510

Browse files
author
“gitgou”
committed
rightSideView
1 parent 9109379 commit f968510

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

rightSideView_v2.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include<vector>
2+
#include<queue>
3+
#include<iostream>
4+
5+
using namespace std;
6+
7+
struct TreeNode {
8+
int val;
9+
TreeNode *left;
10+
TreeNode *right;
11+
TreeNode() : val(0), left(nullptr), right(nullptr) {}
12+
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
13+
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
14+
};
15+
16+
vector<int> rightSideView(TreeNode* root) {
17+
vector<int> res;
18+
if(! root)
19+
return res;
20+
TreeNode* rear = root, *node = root, *next = root;
21+
queue<TreeNode*> q;
22+
q.push(root);
23+
while(! q.empty()){
24+
node = q.front();
25+
q.pop();
26+
if(node->left){
27+
q.push(node->left);
28+
next = node->left;
29+
}
30+
31+
if(node->right){
32+
q.push(node->right);
33+
next = node->right;
34+
}
35+
36+
if(node == rear){
37+
res.push_back(rear->val);
38+
rear = next;
39+
}
40+
}
41+
42+
return res;
43+
}

0 commit comments

Comments
 (0)