首页 > 其他 > 详细

【剑指】用两个栈实现队列

时间:2021-01-08 15:08:37      阅读:14      评论:0      收藏:0      [点我收藏+]

一个栈负责append,一个栈负责push。push之前如果stack2为空,stack1不为空,就把stack1都pop到stack2。

class CQueue:

    def __init__(self):
        self.stack1 = []
        self.stack2 = []

    def appendTail(self, value: int) -> None:
        self.stack1.append(value)


    def deleteHead(self) -> int:
        if self.stack2: return self.stack2.pop()
        if not self.stack1: return -1
        while self.stack1:
            self.stack2.append(self.stack1.pop())
        return self.stack2.pop()


# Your CQueue object will be instantiated and called as such:
# obj = CQueue()
# obj.appendTail(value)
# param_2 = obj.deleteHead()

【剑指】用两个栈实现队列

原文:https://www.cnblogs.com/wangshujaun/p/14250794.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!