使用最简单的思路,用一个栈作为输入栈,保存输入数据,另一个栈作为删除栈,在删除时将输入栈的数据依次放入删除栈中,之后删除输入栈的栈底元素,最后还原输入栈。代码如下。
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if(stack1.empty()){
return -1;
}
while(stack1.size() != 1){
stack2.push(stack1.top());
stack1.pop();
}
int num = stack1.top();
stack1.pop();
while(!stack2.empty()){
stack1.push(stack2.top());
stack2.pop();
}
return num;
}
private:
stack<int> stack1;
stack<int> stack2;
};
京公网安备 11010502036488号