力扣刷题记录 -- JAVA--32--225. 用队列实现栈

目录

  • 一、题目
  • 二、代码
  • 三、运行结果


一、题目

力扣刷题记录 -- JAVA--32--225. 用队列实现栈_第1张图片

力扣刷题记录 -- JAVA--32--225. 用队列实现栈_第2张图片

二、代码

class MyStack 
{

    //主要
    Queue<Integer> queue1;
    //核心是 queue2来放置在最前面
    Queue<Integer> queue2;

    public MyStack() 
    {
        //多态  仍然可以使用父类方法
         queue1 = new LinkedList<>();
         queue2 = new LinkedList<>();
 
    }
    
    public void push(int x) 
    {
        queue2.offer(x);
        while(!queue1.isEmpty())
        {
            queue2.offer(queue1.poll());
        }
        Queue<Integer> temp;
        temp = queue1;
        queue1 = queue2;
        queue2 = temp;
        
    }
    
    public int pop() 
    {
        //poll 是头部并移出
        return queue1.poll();
    }
    
    public int top() 
    {
       //peek 是取头部
       return queue1.peek();
    }
    
    public boolean empty() 
    {
        return queue1.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();
 */

三、运行结果

力扣刷题记录 -- JAVA--32--225. 用队列实现栈_第3张图片

你可能感兴趣的:(#,leetcode,java,算法)