class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
vector<int > res;
vector<vector<int >> levelOrder;
levelOrder = levelorder(root);
for(auto it : levelOrder){
res.push_back(it.back());
}
return res;
}
private:
vector<vector<int>> levelorder(TreeNode* root){
vector<vector<int>> res;
if(!root){
return res;
}
queue <TreeNode* > q;
q.push(root);
while(!q.empty()){
int size = q.size();
vector<int> level;
for(int i =0 ; i< size; i++){
TreeNode* node = q.front();
q.pop();
level.push_back(node->val);
if(node->left !=NULL){
q.push(node->left);
}
if(node->right !=NULL){
q.push(node->right);
}
}
res.push_back(level);
}
return res;
}
};
https://takeuforward.org/data-structure/right-left-view-of-binary-tree/https://leetcode.com/problems/binary-tree-right-side-view/