算法思路:
1.用一个栈进行正常的入队,无脑pushback即可
2.出栈的时候,有三种情况
2.1 如果两个栈都为空,返回-1;
2.2 如果stack1不为空,但是stack2为空:把stack1依次出栈的元素push到stack2,然后再让stack2出栈。
2.3.如果stack2是不为空的,直接从stack2出栈。
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if(stack1.empty() && stack2.empty()){
return -1;
}
if(!stack1.empty() && stack2.empty()){
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
}
int popVal = stack2.top();
stack2.pop();
return popVal;
}
private:
stack<int> stack1;
stack<int> stack2;
};