思路:
- 栈是先进后出的数据结构,把1个栈A的内容出栈后放入另1个栈B的话,栈B的出栈顺序从逻辑上看就是栈A的入栈顺序,变成了先进先出
- 设计两个操作:入队、出队
- 入队:放入栈A
- 出队:先判栈B是否为空,不为空直接出栈;为空的话把栈A元素全部导入到栈B中,再执行出栈操作
class Solution
{
public:
void push(int node) {
stack2.push(node);
}
int pop() {
if(stack1.size()!=0){
int ret=stack1.top();
stack1.pop();
return ret;
}
else if(stack1.size()==0 && stack2.size()!=0){
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
int ret=stack1.top();
stack1.pop();
return ret;
}
else
return -1;
}
private:
stack<int> stack1;
stack<int> stack2;
};
网友评论