解题思路:
(1)map,判断奇偶
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
private:
map<int,vector<int>> mp;
public:
void helper(TreeNode* root,int h) {
if(!root) return;
helper(root->left,h+1);
if(h%2==0) mp[h].push_back(root->val);
else mp[h].insert(mp[h].begin(),root->val);
helper(root->right,h+1);
}
vector<vector<int> > zigzagLevelOrder(TreeNode* root) {
helper(root,0);
vector<vector<int> > v;
for(auto it=mp.begin();it!=mp.end();it++) {
v.push_back(it->second);
}
return v;
}
};