Diagonal Traversal

 https://www.interviewbit.com/old/problems/diagonal-traversal/

 

void preorder(map<int,vector<int> > &mp, int k, TreeNode* root){
        if(root == NULL){
            return;
        }
        mp[k].push_back(root->val);
        preorder(mp, k+1, root->left);
        preorder(mp,k,root->right);
        return;
    }
vector<int> Solution::solve(TreeNode* A) {
    vector<int> v;
        map<int, vector<int>> mp;
        preorder(mp, 0, A);
        for(auto a = mp.begin(); a != mp.end(); a++){
            vector<int> temp = a->second;
            for(int i=0; i<temp.size(); i++){
                v.push_back(temp[i]);
            }
        }
        return v;
}

Comments

Popular posts from this blog

Perfect Peak of Array

Is Rectangle?

Sort array with squares!