一:题目
二:上码
/*
// 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) {
/**
思路:1.这里的孩子结点是用一个集合来表示
2. 这里在装入结点的时候,我们是遍历一个孩子结点的集合,将其入队(类比左右孩子结点)
*/
queue<Node*>q;
vector<vector<int> >ans;
vector<int> v;
if(root) q.push(root);
while(!q.empty()) {
int size = q.size();
for(int i = 0; i <size; i++) {
Node* node = q.front();
q.pop();
v.push_back(node->val);
for(int j = 0; j < node->children.size(); j++) {
if(node->children[j]) q.push(node->children[j]);
}
}
ans.push_back(v);
v.clear();
}
return ans;
}
};
如有疑问 请留言 加油陌生人!!!!!!!!!!!!