剑指 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  */

 

posted @ 2021-03-09 22:35  wsshub  阅读(58)  评论(0)    收藏  举报