package com.anuragkapur.leetcode; import java.util.Deque; import java.util.LinkedList; /** * Implements a stack using a queue. * Problem #225, https://leetcode.com/problems/implement-stack-using-queues/ * * @author anuragkapur */ class MyStack { private Deque<Integer> deque; public MyStack() { deque = new LinkedList<>(); } // Push element x onto stack. public void push(int x) { Deque<Integer> temp = new LinkedList<>(); temp.addLast(x); while(!deque.isEmpty()) { temp.addLast(deque.removeFirst()); } deque = temp; } // Removes the element on top of the stack. public void pop() { if(!deque.isEmpty()) deque.removeFirst(); } // Get the top element. public int top() { if(!deque.isEmpty()) return deque.getFirst(); return -1; } // Return whether the stack is empty. public boolean empty() { return deque.isEmpty(); } }