剑指offer:05 用两个栈实现队列
2019-08-07 本文已影响0人
毛毛毛毛毛豆
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
基本思想
两个栈s1和s2,入队就将元素入s1栈,出队时,如果s2中为空,将s1里全部元素弹出压入s2,再弹出;如果s2中不为空,则弹出,直到s2为空
Python
class Solution:
def __init__(self):
self.s1 = []
self.s2 = []
def push(self, node):
# write code here
self.s1.append(node)
def pop(self):
# return
if self.s2: #s2不为空
return self.s2.pop()
elif not self.s1: #s1为空
return None
else:
while self.s1: # s2为空,s1不为空
self.s2.append(self.s1.pop())
return self.s2.pop()