1.stack1用来插入元素
2.若删除元素,则将stack1中的元素倒入stack2中,再取stack2栈顶元素
3.若stack1中有元素,stack2中也有元素,那么这时候删除应该怎么办?其实仔细想一下很简单,stack2中的元素本来就比stack1中的元素入队列早一些,所以此时直接弹出stack2中的元素。
class Solution
{
public:
void push(int node)
{
stack1.push(node);
}
int pop()
{
if(stack2.size() <= 0)
{
while(stack1.size()>0)
{
int& data = stack1.top();
stack1.pop();
stack2.push(data);
}
}
if(stack2.size() == 0)
{
return 0;
}
int head = stack2.top();
stack2.pop();
return head;
}
private:
stack<int> stack1;
stack<int> stack2;
};