文章目录
- 题目
- 思路
- 问题总结
- 导包有问题,java提供的有关队列的方法不能调用。
- queue.add()和queue.offer(n),这两个方法有什么区别
- 什么叫用LinkedList实现队列
- 代码
- 结果
题目
LeetCode 225. 用队列实现栈
思路
问题总结
导包有问题,java提供的有关队列的方法不能调用。
queue.add()和queue.offer(n),这两个方法有什么区别
add方法在添加元素失败时会抛出异常,
而offer方法则返回一个布尔值来指示操作是否成功。
使用offer方法允许程序在添加失败时进行其他操作而不是直接抛出异常。这在某些情况下可以提供更灵活的错误处理方式。
什么叫用LinkedList实现队列
代码
class MyStack{
Queue<Integer> queue;
public MyStack() {
queue = new LinkedList<>();
}
//往队列加入数字
//调用这个方法的时间复杂度是O(n),每次都要进行n个数字的出队入队
public void push(int x){
int n = queue.size();
queue.offer(x);//往队列加入数字
for (int i = 0; i < n; i++) {
queue.offer(queue.poll());//从队列弹出的数再从后面加入队列
}
}
//弹出
public int pop(){
return queue.poll();
}
//返回队列首元素但是不弹出
public int peek(){
return queue.peek();
}
public boolean empty(){
return queue.isEmpty();
}
}