题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
class Solution { public: // 背景知识,栈是先进后出的 void push(int node) { stack1.push(node); } int pop() { while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } int tmp = 1001; while (!stack2.empty()) { if(tmp == 1001){ tmp = stack2.top(); stack2.pop(); }else{ // pop一次之后,栈2元素回到栈1中放着。保证下次pop操作时,剩余元素依旧可以通过两个栈实现先进先出 stack1.push(stack2.top()); stack2.pop(); } } return tmp; } private: stack<int> stack1; stack<int> stack2; };
挤挤刷刷! 文章被收录于专栏
记录coding过程