思路:
题目意思:使用两个栈来实现队列的入队和出队功能,且出队时将出队的元素返回。
1.当插入时,直接插入 stack1;
2.当弹出时,如果 stack2 不为空,直接弹出 stack2 栈顶元素;如果 stack2 为空,将 stack1 中的全部元素逐个出栈入栈到 stack2,再弹出 stack2 栈顶元素。
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if(stack2.size()<=0){
while(stack1.size()>0){
stack2.push(stack1.top());
stack1.pop();
}
}
int a=stack2.top();
stack2.pop();
return a;
}
private:
stack<int> stack1;
stack<int> stack2;
};

京公网安备 11010502036488号