Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void diagonalPrint(Node *root)
- {
- map<int,vector<Node*> >mp;
- int level=0;
- queue<Node*>q;
- q.push(root);
- while(!q.empty()){
- int s=q.size();
- for(int i=0;i<s;i++){
- Node *curr=q.front();
- q.pop();
- mp[level].push_back(curr);
- if(curr->left)
- q.push(curr->left);
- if(curr->right)
- q.push(curr->right);
- level++;
- }
- level=0;
- }
- for(auto it=mp.begin();it!=mp.end();it++){
- vector<Node *>v=it->second;
- for(int i=0;i<v.size();i++){
- cout<<v[i]->data<<" ";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement