思路:stack1 为数据存放的栈,stack2为数据操作的栈,
进栈全部放入stack1,出栈的时候,依次把stack1.top放入stack2,然后剩下最后一个的时候,作为返回的值,然后再pop掉,
然后再把stack2中的数据再存放进stack1中
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
int ret = 0;
int size = 0;
if(!stack1.empty())
{
size = stack1.size();
while(size > 1)
{
stack2.push(stack1.top());
stack1.pop();
size--;
}
ret = stack1.top();
stack1.pop();
}
size = stack2.size();
while(size > 0)
{
stack1.push(stack2.top());
stack2.pop();
size--;
}
return ret;
}
private:
stack<int> stack1;
stack<int> stack2;
};