力扣题目链接
class CQueue { //全局声明两个栈 LinkedList<Integer> A,B; public CQueue() { //new两个栈 A = new LinkedList<Integer>(); B = new LinkedList<Integer>(); } public void appendTail(int value) { //用A栈实现队列元素的添加 A.addLast(value); } public int deleteHead() { //用B栈实现队列元素的删除 //先判断B栈是否为空,不为空就移除末尾元素 if(!B.isEmpty()) return B.removeLast(); //如果A栈也为空就返回-1; if(A.isEmpty()) return -1; //当A栈不为空时就将A栈的元素出栈到B栈,实现逆序 while(!A.isEmpty()){ B.addLast(A.removeLast()); } //B栈栈尾元素(也就是A栈栈首元素即队列的队首元素出栈)出栈 return B.removeLast(); } }