问题描述
解题报告
实现代码
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int>> ans;
if(!root){
return ans;
}
vector<int> singleItem;
vector<int> temp;
int flag=0;
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
int size=q.size();
for(int i=0;i<size;i++){
if(q.front()->left) q.push(q.front()->left);
if(q.front()->right) q.push(q.front()->right);
singleItem.push_back(q.front()->val);
q.pop();
}
if(!singleItem.empty()){
if(flag==1){
for(int i=singleItem.size()-1;i>=0;i--){
temp.push_back(singleItem[i]);
}
}
ans.push_back(flag==1?temp:singleItem);
singleItem.clear();
temp.clear();
}
flag=!flag;
}
return ans;
}
};