题目
:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔。
题解
:本体是层序遍历的变形,只需要将“左右孩子入队”变成“所有孩子入队”即可,需对结点数据结构有深入把握。
代码(C++)
:
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
vector<vector<int>> res;
queue<Node*> que;
Node* cur;
if(root) que.push(root);
while(!que.empty()){
vector<int> vec;
int size = que.size();
for(int i = 0;i < size;i++){
cur = que.front();
que.pop();
vec.push_back(cur->val);
for(int j = 0;j < cur->children.size();j++){
if(cur->children[j]) que.push(cur->children[j]);
}
}
res.push_back(vec);
}
return res;
}
};
写在后面
标签:遍历,cur,层序,que,二叉树,push,size From: https://blog.csdn.net/weixin_51193374/article/details/145271095这个专栏主要是我在刷题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!