LeetCode 429. N叉树的层序遍历 (多叉树的存储结构、队列实现)

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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章