leetcode算法225.用队列实现栈

Posted 学无止境小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode算法225.用队列实现栈相关的知识,希望对你有一定的参考价值。

👏👏👏

哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

文章目录

一、leetcode算法

1、用队列实现栈

1.1、题目

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。

实现 MyStack 类:

void push(int x) 将元素 x 压入栈顶。
int pop() 移除并返回栈顶元素。
int top() 返回栈顶元素。
boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。

注意:

你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。
你所使用的语言也许不支持队列。 你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。

示例:

输入:
[“MyStack”, “push”, “push”, “top”, “pop”, “empty”]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 2, 2, false]

解释:
MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // 返回 2
myStack.pop(); // 返回 2
myStack.empty(); // 返回 False

1.2、思路

思路一:此题我们可以使用一个队列来完成这几种基本操作。

1.3、答案

class MyStack 
    Queue<Integer> queue;

    public MyStack() 
        queue = new LinkedList<Integer>();
    

    public void push(int x) 
        int n = queue.size();
        queue.offer(x);
        for (int i = 0; i < n; i++) 
            queue.offer(queue.poll());
        
    

    public int pop() 
        return queue.poll();
    
    
    public int top() 
        return queue.peek();
    
    
    public boolean empty() 
        return queue.isEmpty();
    

以上是关于leetcode算法225.用队列实现栈的主要内容,如果未能解决你的问题,请参考以下文章

⭐算法入门⭐《栈 和 队列》简单02 —— LeetCode 225. 用队列实现栈

[算法] leetcode栈与队列相关题目详解

LeetCode用队列实现栈(225. 题)| 动图演示,超详细哦~

LeetCode Algorithm 225. 用队列实现栈

LeetCode——225. 用队列实现栈

LeetCode--225--用队列实现栈