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;
}
};