题解 | #用两个栈实现队列# | C++
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
class Solution { void stack1to2() { while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } } public: void push(int node) { stack1.push(node); if(stack2.empty()) { stack1to2(); } } int pop() { if (stack1.empty() && stack2.empty()) { return -1; } if (stack2.empty()) { stack1to2(); } int ans = stack2.top(); stack2.pop(); return ans; } private: stack<int> stack1; stack<int> stack2; };