剑指offer全集详解python版——用两个栈实现队列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41679411/article/details/86482637

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

思路:

stack1用来缓存刚放进来地元素,当stack2为空时,就将stack1的元素弹出再存入stack2,这样就就能保证是满足队列要求的,当stack2非空时,这些元素的优先级是最高的(很早就存进来了),所以先弹他们。

代码:

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1=[]
        self.stack2=[]
    def push(self, node):
        # write code here
        self.stack1.append(node)
    def pop(self):
        # return xx
        if self.stack2==[]:
            while self.stack1:
                self.stack2.append(self.stack1.pop())
            return self.stack2.pop()
        return self.stack2.pop()

猜你喜欢

转载自blog.csdn.net/weixin_41679411/article/details/86482637