java 用队列实现栈
由于之前没有这个意识,现在做题时会写上随笔和思路
https://leetcode.cn/problems/implement-stack-using-queues/ 题目链接
首先我们用两个队列来实现
根据队列先进先出的一个特征,创建两个链表queue1和queue2后,用push来加到queue1里面;
点击查看代码
public void push(int x) {
queue1.offer(x);
}
点击查看代码
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;
}
点击查看代码
public boolean empty() {
if(queue1.size() == 0){
return true;
}else {
return false;
}
}
浙公网安备 33010602011771号