剑指 Offer 09. 用两个栈实现队列
两个栈实现队列
class CQueue {private Stack<Integer> stack1;private Stack<Integer> stack2;public CQueue() {this.stack1 = new Stack<Integer>();this.stack2 = new Stack<Integer>();}public void appendTail(int value) {// 直接加入栈 1stack1.add(value);}public int deleteHead() {// 如果栈 2 为空,则把栈 1 的元素依次弹出放入栈二if (stack2.empty()) {while (!stack1.empty()) {stack2.add(stack1.pop());}}// 如果栈 2 为空,说明两个栈都为空了,返回 -1if (stack2.isEmpty()) return -1;return stack2.pop();}}
