LeetCode 225. 用队列实现栈
思路:
一个队列用于备份,先将原队列最后一位元素之前的元素弹出,push进备份队列,后再还原
class MyStack {
public:
queue<int> queue1;
queue<int> queue2; //备份
MyStack() {
}
void push(int x) {
queue1.push(x);
}
int pop() {
int res;
int n = queue1.size() - 1;
while (n --) {
queue2.push(queue1.front());
queue1.pop();
}
res = queue1.front();
queue1.pop();
while (queue2.size()) {
queue1.push(queue2.front());
queue2.pop();
}
return res;
}
int top() {
int res = pop();
queue1.push(res);
return res;
}
bool empty() {
return queue1.empty();
}
};
/**
* Your MyStack object will be instantiated and called as such:
* MyStack* obj = new MyStack();
* obj->push(x);
* int param_2 = obj->pop();
* int param_3 = obj->top();
* bool param_4 = obj->empty();
*/

浙公网安备 33010602011771号