题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
class Solution { public: //任意时刻都是一个栈是非空,一个栈是空,的情况 //栈1负责入队,数据都要在栈1中,栈顶是队尾 void push(int node) { int tmp=0; while(!stack2.empty()){ tmp=stack2.top(); stack2.pop(); stack1.push(tmp); } stack1.push(node); } //栈2负责出队,数据都要在栈2中,栈顶是队头 int pop() { int tmp=0; while(!stack1.empty()){ tmp=stack1.top(); stack1.pop(); stack2.push(tmp); } tmp=stack2.top(); stack2.pop(); return tmp; } private: stack<int> stack1; stack<int> stack2; };