剑指offer28 JZ9 用两个栈实现队列

用两个栈实现队列

https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6?tpId=13&tqId=23281&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

思路

借助栈的先进后出规则模拟实现队列的先进先出

  • 1、当插入时,直接插入 stack1
  • 2、当弹出时,当 stack2 不为空,弹出 stack2 栈顶元素,如果 stack2 为空,将 stack1 中的全部数逐个出栈入栈 stack2,再弹出 stack2 栈顶元素

alt alt

代码实现

import java.util.*;

public class Solution {
    //存放入栈元素
    Stack<Integer> stack1 = new Stack<Integer>();
    //存放出栈元素
    Stack<Integer> stack2 = new Stack<Integer>();
   
    public void push(int node) {
         //插入时直接插入到 stack1 
        stack1.push(node);
    }
    
    public int pop() {
    //stack2为空将stack1元素全部插入到stack2 
        if(stack2.isEmpty()){
        while(stack1.size()>0){
            stack2.push(stack1.pop());
                    }
        }
            //不为空时删除直接返回stack2的顶部元素
            return stack2.pop();
       
        
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务