Binary Tree Right Side View LeetCode solution in C++

1
/**
2
* Definition for a binary tree node.
3
* struct TreeNode {
4
* int val;
5
* TreeNode *left;
6
* TreeNode *right;
7
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
8
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
9
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),
10
* right(right) {}
11
* };
12
*/
13
class Solution {
14
public:
15
void solve(TreeNode *root, vector<int> &ans, int level) {
16
// base case
17
if (root == NULL) {
18
return;
19
}
20

21
// we entered a new level
22
if (level == ans.size()) {
23
ans.push_back(root->val);
24
}
25

26
solve(root->right, ans, level + 1);
27
solve(root->left, ans, level + 1);
28
}
29
vector<int> rightSideView(TreeNode *root) {
30
vector<int> ans;
31
int level = 0;
32

33
solve(root, ans, level);
34

35
return ans;
36
}
37
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0