牛客题霸--用两个栈实现队列题解
用两个栈实现队列
http://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6
思路:
入栈时: 栈 1 入栈
出栈时:
一. 把栈 1 的元素存入栈 2
二. 把栈 2 的 top 存入一个变量Top中
三. 把栈 2 的元素再倒回栈 1
四. 返回 Top (就是队首元素)的值
class Solution { public: void push(int node) { stack1.push(node); } int pop() { while(!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } int ans = stack2.top(); stack2.pop(); while(!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); } return ans; } private: stack<int> stack1; stack<int> stack2; };