思路:
题目意思:使用两个栈来实现队列的入队和出队功能,且出队时将出队的元素返回。
1.当插入时,直接插入 stack1;
2.当弹出时,如果 stack2 不为空,直接弹出 stack2 栈顶元素;如果 stack2 为空,将 stack1 中的全部元素逐个出栈入栈到 stack2,再弹出 stack2 栈顶元素。
class Solution { public: void push(int node) { stack1.push(node); } int pop() { if(stack2.size()<=0){ while(stack1.size()>0){ stack2.push(stack1.top()); stack1.pop(); } } int a=stack2.top(); stack2.pop(); return a; } private: stack<int> stack1; stack<int> stack2; };