这里,两个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; };