使用最简单的思路,用一个栈作为输入栈,保存输入数据,另一个栈作为删除栈,在删除时将输入栈的数据依次放入删除栈中,之后删除输入栈的栈底元素,最后还原输入栈。代码如下。
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; };