容器container默认是deque(双端队列)
priority_queue
不是先进先出,是按优先级出
底层是:堆
是适配器,不是容器了
compare是比较的函数
习题
方法一
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> q;
queue<int> qlayer;
vector<vector<int>> vv;
int layer = 1;
if(root)
{
q.push(root);
qlayer.push(layer);
}
while(!q.empty())
{
vector<int> v;
while(qlayer.front() == layer )
{
TreeNode* cur = q.front();
q.pop();
v.push_back((*cur).val);
if(cur->left)
{
q.push(cur->left);
qlayer.push(layer + 1);
}
if(cur->right)
{
q.push(cur->right);
qlayer.push(layer + 1);
}
qlayer.pop();
}
vv.push_back(v);
++layer;
}
return vv;
}
};
方法二