为了账号安全,请及时绑定邮箱和手机立即绑定

剑指Offer-用两个栈实现队列

标签:
Java 算法

最近一直在复习一些算法及数据结构方面的东西,就找了一个适合找工作笔试的题目,在剑指Offer上刷了几道题目,发现对复习知识点还是很有用的,做到重建二叉树这块。递归传值出了点问题,debug半小时才找出错误,所有还是写篇博客记录一下。也推荐要找工作的伙伴去剑指Offer刷题。

       

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
	    public  void push(int node) {
	    	stack1.push(node);
	    }
	    
	    public  int pop() {
	    	if(stack2.size() > 0) {
	    	   return stack2.pop();	
	    	}else {
	    		while(stack1.size() > 0 ) {
	    			stack2.push(stack1.pop());
	    		}
	    		return stack2.pop();
	    	}
	    }
}

很简单,一个栈专门负责进队的操作,假如要出队的话,就将负责进队的这个栈全部出栈到另外一个栈,假如又有进队的元素,直接进入stack1,等stack2的长度为0之后才将stack1出栈到stack2



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
7796
获赞与收藏
665

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消