LeetCode 429 N-ary Tree Level Order Traversal
阿新 • • 發佈:2018-12-16
Description
Given an n-ary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example, given a 3-ary tree:
We should return its level order traversal:
[
[1],
[3,2,4],
[5,6]
]
Note:
The depth of the tree is at most 1000.
The total number of nodes is at most 5000.
Solution
- 解決思路
這道題是要求N叉樹每一層的陣列,並輸出,由題意很容易想到這是層次遍歷,藉助佇列實現即可。 - AC程式碼
/* // Definition for a Node. class Node { public: int val = NULL; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; children = _children; } }; */ class Solution { public: vector<vector<int>> levelOrder(Node* root) { vector<vector<int>> res; if(!root) return res; queue<Node*> q; q.push(root); while(!q.empty()){ vector<int> tmp; int n = q.size(); for(int i = 0; i < n; i++){ Node* t = q.front(); tmp.push_back(t->val); q.pop(); for(int j = 0; j < t->children.size(); j++){ q.push(t->children[j]); } } res.push_back(tmp); } return res; } };