剑指Offer5:用两个栈实现队列

思路:

1.初始化两个栈stack1和stack2。

2.入队:将元素append进栈stack1

3.出队:判断栈stack2是否为空,如果为空,则将栈stack1中所有元素pop,并append进栈stack2,栈stack2再pop出栈; 如果不为空,栈stack1直接pop出栈。(pop:默认取出最后一个元素,append:新的元素加在最后)

# -*- 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()

跟着大佬们好好学习,准没错

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/84333947