剑指 Offer 09. 用两个栈实现队列
1 class CQueue { 2 3 int temp,size; 4 LinkedList<Integer> stack1,stack2; 5 public CQueue() { 6 stack1=new LinkedList<>(); 7 stack2=new LinkedList<>(); 8 } 9 10 public void appendTail(int value) { 11 stack1.add(value); 12 } 13 14 public int deleteHead() { 15 if(stack2.size()==0){ 16 if(stack1.size()==0) 17 return -1; 18 else{ 19 size=stack1.size(); 20 for(int i=0;i<size;i++) 21 { stack2.add(stack1.getLast()); 22 stack1.removeLast(); 23 } 24 } 25 } 26 temp=stack2.getLast(); 27 stack2.removeLast(); 28 return temp; 29 30 } 31 } 32 33 /** 34 * Your CQueue object will be instantiated and called as such: 35 * CQueue obj = new CQueue(); 36 * obj.appendTail(value); 37 * int param_2 = obj.deleteHead(); 38 */