题目
题目地址:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/
题解
两个栈实现一个队,一个栈用来服责入队一个负责出队,入队的时候就直接将元素压进stack1中,出队的时候先判断负责出栈的stack2是否为空,为空就将stack1中的元素直接出栈入栈到stack2中,这样正好stack2中的元素出栈时正好和元素插入的的顺序一样正好就满足了队列的先进先出的性质。
class CQueue {
private Deque<Integer> stack1;
private Deque<Integer> stack2;
public CQueue() {
stack1 = new LinkedList<>();
stack2 = new LinkedList<>();
}
public void appendTail(int value) {
stack1.push(value);
}
public int deleteHead() {
if (stack2.isEmpty()){
while (!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
if (stack2.isEmpty()){
return -1;
}
return stack2.pop();
}
}