day15
因为层序遍历时先进先出的。所以用队列来模拟、
每次现在队列中记录好一层的大小。
然后将每一层的元素放入数组中,放的同时将它的左右孩子放入队列。不用担心弹出的时候会多弹出,因为设置了size。所以只会按照size的大小弹出
注意:
1. vector<int> vec 的位置,要放在大while中
2.别忘记将root先加入
2.加入元素到数组中的时候,别忘记弹出队列中的
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> que;
vector<vector<int>> res;
if(root == nullptr)
return res;
que.push(root);
while(!que.empty())
{
int size = que.size();
vector<int> vec; // 每一层的元素不一样,要清空
while(size--)
{
TreeNode* node = que.front();
que.pop(); // 别忘记pop
vec.push_back(node->val);
if(node->left) que.push(node->left);
if(node->right) que.push(node->right);
}
res.push_back(vec);
}
return res;
}
};