题目描述
解题思路
这个就是标准的 B F S BFS BFS解决步骤,注意返回结果的每一个子向量,都是一层上的元素,不同的向量里的元素所在的层次不同。
解题代码
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
vector<vector<int>> ret;
if(!root) return ret;
ret.push_back({root->val});
queue<Node*> Q;
Q.push(root);
auto cur = root;
while(!Q.empty()){
vector<int> ins;
auto len = Q.size();
for(int i = 0; i < len; i++){
cur = Q.front();
Q.pop();
for(auto &iter: cur->children) ins.push_back(iter->val);
for(auto &iter: cur->children) Q.push(iter);
}
if(ins.size()) ret.push_back(ins);
}
return ret;
}
};
测试数据
我实在是搞不懂这N叉树是怎么创建的
输入:[1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]