- 分析
和二叉树的层次遍历相同,需要学习的是如何保证外层循环没遍历一次是访问一层。这里我们使用一个变量来记录每层的个数。 - 代码
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
vector<vector<int>> ans;
queue<Node*> que;
vector<int> vec;
Node* temp = nullptr;
int num = 0;
if(nullptr != root) que.push(root);
while(!que.empty()){
vec.clear();
num = que.size();
while(num--){
temp = que.front();
que.pop();
vec.push_back(temp -> val);
for(int i = 0; i < temp -> children.size(); i++){
que.push(*(temp -> children.begin() + i));
}
}
ans.push_back(vec);
}
return ans;
}
};