这就是二叉树的层序遍历
只不过用一个变量来看是否来把每层读入的数组来翻转
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int>>res;
queue<TreeNode*>q;
if(root)q.push(root);
int cnt=0;
while(q.size()){
int k=q.size();
vector<int>s;
while(k--){
auto t=q.front();
q.pop();
s.push_back(t->val);
if(t->left)q.push(t->left);
if(t->right)q.push(t->right);
}
if(++cnt%2==0)reverse(s.begin(),s.end());
res.push_back(s);
}
return res;
}
};