题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
class Solution
{
public:
//任意时刻都是一个栈是非空,一个栈是空,的情况
//栈1负责入队,数据都要在栈1中,栈顶是队尾
void push(int node) {
int tmp=0;
while(!stack2.empty()){
tmp=stack2.top();
stack2.pop();
stack1.push(tmp);
}
stack1.push(node);
}
//栈2负责出队,数据都要在栈2中,栈顶是队头
int pop() {
int tmp=0;
while(!stack1.empty()){
tmp=stack1.top();
stack1.pop();
stack2.push(tmp);
}
tmp=stack2.top();
stack2.pop();
return tmp;
}
private:
stack<int> stack1;
stack<int> stack2;
};
