class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
int res;
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
//当stack1的元素非空时 为了保证出栈顺序为先入先出 将stack1元素出栈 使得原来的栈顶变为栈底
res=stack2.top();
stack2.pop();
//出栈底部元素
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
//为了保证之后入栈的元素顺序 stack2 全部出栈到stack1 新的元素将来到stack1的顶部
return res;
}
private:
stack<int> stack1;
stack<int> stack2;
};
剑指offer 用两个栈实现队列
最新推荐文章于 2022-03-27 17:12:09 发布