题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路
队列是先进先出,栈是先进后出,只要把栈1放到栈2中,那么栈2就是先进先出了。具体可以看我另外一篇博文:
https://blog.csdn.net/songsong2017/article/details/86721095
代码
class Solution
{
public:
void push(int node) {
stack<int> s;
while (!myStack.empty()){
s.emplace(myStack.top());
myStack.pop();
}
myStack.emplace(node);
while (!s.empty()){
myStack.emplace(s.top());
s.pop();
}
}
int pop() {
int res = myStack.top();
myStack.pop();
return res;
}
private:
stack<int> myStack;
};