用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
思路:栈的先入后出,来两次,就成队列了
入栈:直接进A栈
出栈:首先判断B栈是否有元素,有就直接输出
若没有,就将A栈的元素全部出栈再进B栈,再输出
class Solution:
def __init__(self):
self.stack1=[] #创建两个栈
self.stack2=[]
def push(self,node):
#入栈,直接往A栈存
self.stack1.append(node)
def pop(self):
#出栈,如果B有元素,直接输出
#如果,如果A只有元素,A出栈进B栈,再输出
if len(self.stack1)==0 and len(self.stack2)==0:
return None
if len(self.stack2)>0:
return self.stack2.pop()
elif len(self.stack1)>1:
while len(self.stack1):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()