我的解题:
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if(root==NULL) return res;
bool flag=true;
deque<TreeNode*> q;
q.push_back(root);
while(!q.empty()){
int n=q.size();
vector<int> line;
TreeNode* tmp;
while(n--){
if(flag){
tmp=q.front();
q.pop_front();
if(tmp->left) q.push_back(tmp->left);
if(tmp->right) q.push_back(tmp->right);
}
else{
tmp=q.back();
q.pop_back();
if(tmp->right) q.push_front(tmp->right);
if(tmp->left) q.push_front(tmp->left);
}
line.push_back(tmp->val);
}
flag=!flag;
res.push_back(line);
}
return res;
}
};