Advertisement
prakharvk

Diagonal traversal of binary tree

Jun 15th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.63 KB | None | 0 0
  1. void diagonalPrint(Node *root)
  2. {
  3.    map<int,vector<Node*> >mp;
  4.    int level=0;
  5.    queue<Node*>q;
  6.    q.push(root);
  7.    while(!q.empty()){
  8.         int s=q.size();
  9.         for(int i=0;i<s;i++){
  10.             Node *curr=q.front();
  11.             q.pop();
  12.             mp[level].push_back(curr);
  13.             if(curr->left)
  14.                 q.push(curr->left);
  15.             if(curr->right)
  16.                 q.push(curr->right);
  17.             level++;    
  18.         }
  19.         level=0;
  20.        
  21.    }
  22.    for(auto it=mp.begin();it!=mp.end();it++){
  23.        vector<Node *>v=it->second;
  24.        for(int i=0;i<v.size();i++){
  25.            cout<<v[i]->data<<" ";
  26.        }
  27.    }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement