牛客题霸--用两个栈实现队列题解
用两个栈实现队列
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;
};
广发银行公司氛围 23人发布