Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<vector<int> > Solution::verticalOrderTraversal(TreeNode* root) {
- unordered_map<int,vector<int>> mp;
- int mn = 0,mx = 0;
- queue<pair<TreeNode*,int>> q;
- if(!root) return {};
- q.push({root,0});
- while(q.size()){
- int sz = q.size();
- for(int i=0;i<sz;i++){
- auto node = q.front();
- q.pop();
- mn = min(mn,node.second);
- mx = max(mx,node.second);
- mp[node.second].push_back(node.first->val);
- if(node.first->left) q.push({node.first->left,node.second-1});
- if(node.first->right) q.push({node.first->right,node.second+1});
- }
- }
- vector<vector<int>> ans;
- for(int i=mn;i<=mx;i++)
- ans.emplace_back(mp[i]);
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement