class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if(root==NULL) return res;
Queue<int> queue;
queue.push(root->val);
vector<int> vec;
vec.push(root->val);
res.append(vec);
while(!queue.isEmpty()){ //每次循环输出一层
vector<int> v;
//每层新建vector<int> v, 用i<res[size()-1].size()追踪最后一行数组元素个数
for(int i=0;i<res[size()-1].size();i++){ //记录每一层的数量
TreeNode* node=queue.pop();
v.push(node->val);
queue.push(node->left); num++;
queue.push(node->right); num++;
}
res.append(v);
}
}
};
queue, vector基本用法不会。
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if(root==NULL) return res;
queue<TreeNode*> myqueue;
myqueue.push(root);
vector<int> vec;
vec.push_back(root->val);
res.push_back(vec);
while(!myqueue.empty()){
vector<int> v;
for(int i=0;i<res[res.size()-1].size();i++){ //记录每一层的数量
TreeNode* node=myqueue.front();
myqueue.pop();
if(node->left!=NULL) {
myqueue.push(node->left);
v.push_back(node->left->val);
}
if(node->right!=NULL){
myqueue.push(node->right);
v.push_back(node->right->val);
}
}
if(!v.empty()) res.push_back(v); //vector.empty(), queue.empty()
}
return res;
}
};