欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用两个栈实现队列@剑指offer

程序员文章站 2022-07-10 10:26:15
...

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

思路分析
在python中,list.append()可以实现在列表末尾添加元素的操作,即push()
list.pop()可以实现删除列表元素的操作,默认删除最后一个元素。pop([index = -1])
题目给出了队列元素为int类型,因此list.append()和list.pop()可行

代码实现

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 = []
    def push(self, node):
        # write code here
        self.stack1.append(node)
        return self.stack1
        #self.stack1 = [node1]
    def pop(self):
        # return xx
        if self.stack2 == []:
            while self.stack1:
            # 确保self.stack1有值,已经实现了Push操作
                a = self.stack1.pop()
                # a = node1
                #self.stack1 = []
                self.stack2.append(a)
                # self.stack2 = [node3]
        if self.stack2:
            return self.stack2.pop()
            # self.stack2 = []
            # self.stack1 = []