题解 | #用两个栈实现队列python实现#

用两个栈实现队列

http://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

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 len(self.stack2) > 0 :  #当弹出栈不为空时,弹出最右侧值
            return self.stack2.pop()
        elif len(self.stack1) == 0: # 当弹出栈和压入栈都为空时,返回None
            return None
        else:                        # 当弹出栈为空,压入栈不为空时,将压入栈中的值反向后复制到弹出栈中,并删除原来的值
            self.stack2 = self.stack1.copy()
            self.stack2.reverse()
            self.stack1 = []
            return self.stack2.pop()
全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务