题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路
栈先进后出,队列先进先出,我们用instack来进行push操作,用outstack来进行pop操作。一个元素进入instack栈后,出栈的顺序被翻转,再次进入outstack栈后,出栈顺序再次被反转,因此出栈顺序与入栈顺序相同,也就是队列的先进先出。
class Solution:
def __init__(self):
self.instack=[]
self.outstack=[]
def push(self,node):
#用instack进行push操作
self.instack.append(node)# write code here
def pop(self):
# return xx
#若outstack为空,先将instack出栈的元素入outstack栈,
if self.outstack==[]:
while self.instack:
self.outstack.append(self.instack.pop())
return self.outstack.pop()