美文网首页《剑指offer》Python版
09用两个栈实现一个队列

09用两个栈实现一个队列

作者: gantrol | 来源:发表于2019-01-17 13:47 被阅读0次

    用两个栈实现一个队列。队列的声明如下,请实现它的两个方法push和pop,分别完成在队列尾部插入结点和在队列头部删除结点的功能。

    # -*- coding:utf-8 -*-
    class QueueWithTwoStacks:
        def __init__(self):
            self.stack1 = []
            self.stack2 = []
            
        def push(self, node):
            self.stack1.append(node)
    
        def pop(self):
            if self.stack2:
                return self.stack2.pop()
            else:
                while self.stack1:
                    self.stack2.append(self.stack1.pop())
                if self.stack2:
                    return self.stack2.pop()
    

    相关文章

      网友评论

        本文标题:09用两个栈实现一个队列

        本文链接:https://www.haomeiwen.com/subject/lkkidqtx.html