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