题目描述:
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例 1:
输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]
示例 2:
输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]
1 class CQueue { 2 Deque<Integer> stack1; 3 Deque<Integer> stack2; 4 5 public CQueue() { 6 stack1 = new LinkedList<Integer>(); 7 stack2 = new LinkedList<Integer>(); 8 } 9 10 public void appendTail(int value) { 11 stack1.push(value); 12 13 } 14 15 public int deleteHead() { 16 if(stack2.isEmpty()){ 17 if(stack1.isEmpty()){ 18 return -1; 19 } 20 while(!stack1.isEmpty()){ 21 stack2.push(stack1.pop()); 22 } 23 24 25 } 26 return stack2.pop(); 27 28 } 29 } 30 31 /** 32 * Your CQueue object will be instantiated and called as such: 33 * CQueue obj = new CQueue(); 34 * obj.appendTail(value); 35 * int param_2 = obj.deleteHead(); 36 */
浙公网安备 33010602011771号