题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
class Solution { public: void push(int node) { stack1.push(node); } int pop() { if (stack2.empty() && !stack1.empty()) { // 堆栈1非空,堆栈2空 先将堆栈1中的东西全部压入堆栈2,再弹出其顶端的元素 while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } } if (!stack2.empty()) { int result = stack2.top(); stack2.pop(); return result; } return 0; } private: std::stack<int> stack1; std::stack<int> stack2; };