原题
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail
和 deleteHead
,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead
操作返回 -1 )
示例 1:
输入://第一行是方法名 构造函数 appendTail deleteHead deleteHead//第二行 是参数 只有appendTail有参数值["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]
示例 2:
输入:["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"][[],[],[5],[2],[],[]]输出:[null,-1,null,null,5,2]
class CQueue {LinkedList<Integer> stack1 = new LinkedList<>();LinkedList<Integer> stack2 = new LinkedList<>();public CQueue() {}public void appendTail(int value) {stack1.push(value);}public int deleteHead() {//判断stack2是否是空if(stack2.isEmpty()){//如果stack1也是空则返回-1if(stack1.isEmpty()){return -1;}//如果stack1不是空则循环添加到stack2中while(!stack1.isEmpty()){stack2.push(stack1.pop());}}return stack2.pop();}}