[Leetcode]225. 用队列实现栈 、剑指 Offer 09. 用两个栈实现队列
2024-08-30 14:25:28
##225. 用队列实现栈
如题
###题解
在push时候搞点事情:push时入队1,在把队2的元素一个个入队1,再交换队2和队1,保持队1除pushguocheng 始终为空。
###代码
class MyStack {
private Queue<Integer> q1;
private Queue<Integer> q2;
/** Initialize your data structure here. */
public MyStack() {
q1=new LinkedList<>();
q2=new LinkedList<>();
}
/** Push element x onto stack. */
public void push(int x) {
q1.offer(x);
while(!q2.isEmpty()){
q1.offer(q2.poll());
}
Queue temp=q1;
q1=q2;
q2=temp;
}
/** Removes the element on top of the stack and returns that element. */
public int pop() {
return q2.poll();
}
/** Get the top element. */
public int top() {
return q2.peek();
}
/** Returns whether the stack is empty. */
public boolean empty() {
return q2.isEmpty();
}
}
/**
* Your MyStack object will be instantiated and called as such:
* MyStack obj = new MyStack();
* obj.push(x);
* int param_2 = obj.pop();
* int param_3 = obj.top();
* boolean param_4 = obj.empty();
*/
剑指 Offer 09. 用两个栈实现队列
###题解
入队直接入栈1
出队:若栈2有元素直接出栈,否则若栈1为空则返回-1,若不为空则全部入栈2并弹出栈顶元素。
###代码
class CQueue {
LinkedList s1,s2;
public CQueue() {
s1 = new LinkedList<>();
s2 = new LinkedList<>();
}
public void appendTail(int value) {
s1.add(value);
}
public int deleteHead() {
if(!s2.isEmpty()){
return s2.removeLast();
}else if(s1.isEmpty()){
return -1;
}else{
while(!s1.isEmpty()){
int val=s1.removeLast();
s2.add(val);
}
return s2.removeLast();
}
}
}
/**
- Your CQueue object will be instantiated and called as such:
- CQueue obj = new CQueue();
- obj.appendTail(value);
- int param_2 = obj.deleteHead();
*/
最新文章
- .NET Core下的日志(2):日志模型详解
- 后台发送POST,DELETE,GET,PUT请求
- A*算法 -- 八数码问题和传教士过河问题的代码实现
- uml大战需求分析阅读笔记01
- Hadoop-2.7.3 问题收集
- ueditor 发布到服务器提示“后端配置项没有正常加载,上传插件不能正常使用!”
- Knockout 新版应用开发教程之";text";绑定
- this的使用
- 深入了解line-height
- java面对对象 关键字this super
- 修改ecshop模板体会
- request.getParameterValues与request.getParameter的差别
- Google I/O 2014? No,Android I/O 2014
- 小C的树(Treap节点删除)[70/100]
- 静默方式安装window oracle
- LinQ 创建连接、简单增删改查
- 自学Python2.1-基本数据类型-字符串str(object)
- FB面经 Prepare: K closest point to the origin
- Java正则表达式初探(一)
- OpenLayers Node环境安装运行构建-支持Vue集成OpenLayers