Queue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| class MyStack {
private Queue<Integer> queue; private Queue<Integer> queueForAddFirst;
public MyStack() { this.queue = new LinkedList<>(); this.queueForAddFirst = new LinkedList<>(); }
public void push(int x) { queueForAddFirst.offer(x);
while (!queue.isEmpty()) { queueForAddFirst.offer(queue.poll()); }
Queue<Integer> tmp = queue; queue = queueForAddFirst; queueForAddFirst = tmp; }
public int pop() { return queue.poll(); }
public int top() { return queue.peek(); }
public boolean empty() { return queue.isEmpty(); }
}
|
Queue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class MyStack {
private final Queue<Integer> queue;
public MyStack() { this.queue = new LinkedList<>(); }
public void push(int x) { int size = queue.size(); queue.offer(x);
for (int i = size; i > 0; i--) { queue.offer(queue.poll()); } }
public int pop() { return queue.poll(); }
public int top() { return queue.peek(); }
public boolean empty() { return queue.isEmpty(); }
}
|
References
225. Implement Stack using Queues