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
Post a Comment