2.用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程就是一个队列的先进先出
在pop时候,要注意判断,判断栈2是否为空,如果栈2为空,判断栈1是否为空,如果栈1也为空则返回None,否则将栈1中的所有元素都弹到栈2,记住一定要是全部因为要维护入队的先后状态。
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stackA = []
self.stackB = []
def push(self, node):
# write code here
self.stackA.append(node)
def pop(self):
# return xx
if self.stackB:
return self.stackB.pop()
elif not self.stackA:
return None
else:
while self.stackA:
self.stackB.append(self.stackA.pop())
return self.stackB.pop()