##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();
    */

最新文章

  1. .NET Core下的日志(2):日志模型详解
  2. 后台发送POST,DELETE,GET,PUT请求
  3. A*算法 -- 八数码问题和传教士过河问题的代码实现
  4. uml大战需求分析阅读笔记01
  5. Hadoop-2.7.3 问题收集
  6. ueditor 发布到服务器提示“后端配置项没有正常加载,上传插件不能正常使用!”
  7. Knockout 新版应用开发教程之&quot;text&quot;绑定
  8. this的使用
  9. 深入了解line-height
  10. java面对对象 关键字this super
  11. 修改ecshop模板体会
  12. request.getParameterValues与request.getParameter的差别
  13. Google I/O 2014? No,Android I/O 2014
  14. 小C的树(Treap节点删除)[70/100]
  15. 静默方式安装window oracle
  16. LinQ 创建连接、简单增删改查
  17. 自学Python2.1-基本数据类型-字符串str(object)
  18. FB面经 Prepare: K closest point to the origin
  19. Java正则表达式初探(一)
  20. OpenLayers Node环境安装运行构建-支持Vue集成OpenLayers

热门文章

  1. python智能图片识别系统(图片切割、图片识别、区别标识)
  2. 【特别篇】不为人知的U盘秘密
  3. Android SDK 环境的搭建 --图形界面模式和命令行模式
  4. JavaScript学习系列博客_4_JavaScript中的数据类型
  5. ubuntu ARM 源配置
  6. 团队作业4:第二篇Scrum冲刺博客(歪瑞古德小队)
  7. Maven快速入门(四)Maven中的pom.xml文件详解
  8. 08.简单学习redis哨兵主备切换和选举算法
  9. 每日JS逆向练习之斗鱼登录密码加密,今天你练了吗?
  10. Python3 高级编程技巧(部分)