ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

java 用队列实现栈

java 用队列实现栈

由于之前没有这个意识,现在做题时会写上随笔和思路
https://leetcode.cn/problems/implement-stack-using-queues/ 题目链接
首先我们用两个队列来实现
根据队列先进先出的一个特征,创建两个链表queue1和queue2后,用push来加到queue1里面;

点击查看代码
public void push(int x) {queue1.offer(x);}
pop方法需要先判断queue1是否为空 将queue1的参数放到queue2里面直到queue里只有一位,就对应的时栈的栈顶元素 之后再将queue2的元素放进queue1里就行了,这是在返回栈顶元素
点击查看代码
public int pop() {if (queue1.isEmpty() == true) {return -1;}while (queue1.size() != 1) {queue2.offer(queue1.poll());}while (queue2.isEmpty() != true) {queue1.offer(queue2.poll());}return queue1.poll();}

top和上面代码差不多就是不对queue1移除栈顶就行了

点击查看代码
public int top() {if (queue1.isEmpty() == true) {return -1;}while (queue1.size() != 1) {queue2.offer(queue1.poll());}int x = queue1.peek();queue2.offer(queue1.poll());while (queue2.isEmpty() != true) {queue1.offer(queue2.poll());}return x;}
empty就更简单了,看queue1的size是不是0
点击查看代码
 public boolean empty() {if(queue1.size() == 0){return true;}else {return false;}}
那么用两个队列实现栈就结束了
返回列表