这篇page是针对leetcode225.用队列实现栈所写的,小尼先简单说一下这道题的要求和目的,使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)
class MyStack{ Queue<Integer> queue1; Queue<Integer> queue2; public MyStack(){ queue1 = new LinkedList<>(); queue2 = new LinkedList<>(); } public void push(int x){ queue2.offer(x); while(!queue1.isEmpty()){ queue2.offer(queue1.poll()); } Queue<Integer> temp = queue1; queue1 = queue2; queue2 = temp; } public int pop(){ return queue1.poll(); } public int top(){ return queue1.peek(); } public boolean empty(){ return queue1.isEmpty(); } }
上述代码实现两个队列实现一个栈