Input: root = [1,null,3,2,4,null,5,6]
Output: [[1],[3,2,4],[5,6]]
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: [[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
/*
// 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>> levelOrder(Node *root)
{
vector<vector<int>> res;
if(root == NULL){
return res;
}
queue<Node *> q;
q.push(root);
while (!q.empty())
{
int s = q.size();
vector<int> v;
while (s--)
{
Node *t = q.front();
q.pop();
v.push_back(t->val);
for (int i = 0; i < t->children.size(); i++)
{
if (t->children[i])
{
q.push(t->children[i]);
}
}
}
res.push_back(v);
}
return res;
}
};