N叉树的层序遍历
注意:
- 一般一棵多叉树的结构:
其中边长数组便于存储不定长的子节点。
class Node{
int val;
vector<Node*> children;
};
而字典树(Trie)的存储结构一般为:
现将字符映射为数字,用数组反应这种映射关系。
const int sizeOfCharSet = 26;
class TrieNode{
int val;
TrieNode* children[sizeOfCharSet];
};
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<vector<int>> ans;
vector<vector<int>> levelOrder(Node* root) {
if(!root){
return ans;
}
queue<Node*> q;
q.push(root);
while(!q.empty()){
int size = q.size();
vector<int> list;
while(size--){
Node* r = q.front();
q.pop();
if(!r){
continue;
}
list.push_back(r->val);
for(Node* child:r->children){
q.push(child);
}
}
ans.push_back(list);
}
return ans;
}
};