QUESTION
easy
题目描述
给定一个 N
叉树,返回其节点值的层序遍历(即从左到右,逐层遍历)
例如,给定一个 3
叉树:
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明
- 树的深度不会超过
1000
- 树的节点总数不会超过
5000
SOLUTION
很简单,如果你已经做过二叉树的层次遍历,那么方法是一样的,用一个队列就可以了
方法一
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> level;
int n = q.size();
for(int i = 0; i < n; ++i){
Node* node = q.front();
q.pop();
level.push_back(node->val);
for(auto child : node->children){
q.push(child);
}
}
res.push_back(level);
}
return res;
}