One minute
Leetcode 225
Implementing Stacks Using Queues
Head on over here to try the problem for yourself.
The solution talks about using 2 queues, which frankly I don’t understand :’). I used a single queue to implement this problem.
Algorithm
The goal is to implement a stack using the basic queue features provided such as push(), peek() and pop(). The easiest way to implement this is by inserting elements in reverse order. Then the queue will pop the elements like a stack.
Code
public class MyStack {
Queue<Integer> q;
public MyStack() {
q = new LinkedList<>();
}
public void push(int x) {
q.add(x);
for(int i = 0; i < q.size() - 1; i++) {
q.add(q.remove());
}
}
public int pop() {
return q.remove();
}
public int top() {
return q.peek();
}
public boolean empty() {
return q.size() == 0;
}
}