Day17: (Binary Tree)

Inorder Traversal Solved on: 29th July 2020

vector<int> inorderTraversal(TreeNode* root) {
    vector<int> v;
    helper(root,v);
    return v;
        
}
void helper(TreeNode* root, vector <int> &v) {
    if (root == NULL) {
        return ;
    }
    helper(root->left, v);
    v.push_back(root->val);
    helper(root->right, v);
}

Binary Tree Preorder Traversal Solved on: 29th July 2020

vector<int> preorderTraversal(TreeNode* root) {
    vector<int> v;
    helper(root, v);
    return v;
}

void helper(TreeNode *root, vector<int> &v) {
    if (root ==NULL){
        return;
    }
    v.push_back(root->val);
    helper(root->left, v);
    helper(root->right, v);
}

Binary Tree Right Side View Solved on: 29th July 2020

vector<int> rightSideView(TreeNode* root) {
    vector<int> v;
    int max_level=0;
    helperUtil(root, 1, &max_level, v);
    return v;
}
    
void helperUtil(TreeNode* root, int level, int *max_level, vector<int> &v) {
    if (root == NULL) {
        return;
    }
    
    if (level > *max_level ) {
        v.push_back(root->val);
        *max_level = level;
    }

   helperUtil(root->right, level+1, max_level, v);
   helperUtil(root->left, level+1, max_level, v);        
}

Last updated

Was this helpful?