这里,两个stack间传数据可以把原来的数据倒过来,最后栈顶的数据就是原先栈底的数据,而栈底相当于队头,pop操作弹出的就是队头,所以反转栈再pop就可以实现出队,而入队嘛。。。就直接在原先的栈压栈就好啦(栈顶相当于队尾)
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}int x=stack2.top();//不能直接return,要不然数据就搁浅在栈2了(其实直接return没事,只是我为了保持数据在一起)
stack2.pop();
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}return x;
}
private:
stack<int> stack1;
stack<int> stack2;
};

京公网安备 11010502036488号