Binary Tree Right Side View

 Binary Tree Right Side View


Given the root of 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.

 

Example 1:

Input: root = [1,2,3,null,5,null,4]
Output: [1,3,4]

Example 2:

Input: root = [1,null,3]
Output: [1,3]

Example 3:

Input: root = []
Output: []

 

Constraints:

  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

Solution to to the above question

class Solution {
public:vector<int>v;
    vector<int>ans;
        
    vector<intrightSideView(TreeNode* root) {
        if(root==NULL){
            return ans;
        }
       
        queue<TreeNode*>q;
        q.push(root);
        q.push(NULL);
  
        while(!q.empty()){
            TreeNode* temp=q.front();
            q.pop();
            if(temp==NULL){
                v.push_back(ans[0]);
                ans.clear();
                if(!q.empty()){
                    q.push(NULL);
                }
            }
            else{
                ans.push_back(temp->val);
                if(temp->left!=NULL){
                q.push(temp->left);
            }
            if(temp->right!=NULL){
                q.push(temp->right);
            } 
            }
            
            ans.clear();
        }
        
        return v;
    }
};

Post a Comment

0 Comments