【LeetCode225】 Implement Stack using Queues★

1.题目

2.思路

3.java代码

 

 1 import java.util.LinkedList;
 2 import java.util.Queue;
 3 
 4 public class MyStack {
 5     private Queue<Integer> q1=new LinkedList<Integer>();
 6     private Queue<Integer> q2=new LinkedList<Integer>();
 7     
 8     /** Push element x onto stack. */
 9     public void push(int x) {
10         if(!q1.isEmpty())
11             q1.add(x);
12         else
13             q2.add(x);
14     }
15     
16     /** Removes the element on top of the stack and returns that element. */
17     public int pop() {
18         if(q1.isEmpty()){
19             int size=q2.size();
20             for(int i=1;i<size;i++){
21                 q1.add(q2.poll());
22             }
23             return q2.poll();
24         }else{
25             int size=q1.size();
26             for(int i=1;i<size;i++){
27                 q2.add(q1.poll());
28             }
29             return q1.poll();
30         }
31     }
32     
33     /** Get the top element. */
34     public int top() {
35         int result;
36         if(q1.isEmpty()){
37             int size=q2.size();
38             for(int i=1;i<size;i++){
39                 q1.add(q2.poll());
40             }
41             result=q2.poll();
42             q1.add(result);
43         }else{
44             int size=q1.size();
45             for(int i=1;i<size;i++){
46                 q2.add(q1.poll());
47             }
48             result=q1.poll();
49             q2.add(result);
50         }
51         return result;
52     }
53     
54     /** Returns whether the stack is empty. */
55     public boolean empty() {
56         return q1.isEmpty()&&q2.isEmpty();
57     }
58 }
59 
60 /**
61  * Your MyStack object will be instantiated and called as such:
62  * MyStack obj = new MyStack();
63  * obj.push(x);
64  * int param_2 = obj.pop();
65  * int param_3 = obj.top();
66  * boolean param_4 = obj.empty();
67  */

 

posted @ 2017-03-16 11:10  追梦boy  阅读(374)  评论(0编辑  收藏  举报