问题描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
分析思路:
栈是先进后出;队列是先进先出;
push操作没有影响,压入相应值就可以;
区别在pop操作,两个栈来实现,就好像两个杯子进行倒水,将一杯水导入另一杯的时候,先前那杯水的杯子底部的水就到了另一个杯子的顶部;
python代码实现如下:
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
# write code here
return self.stack1.append(node)
def pop(self):
# return xx
if len(self.stack2) > 0:
return self.stack2.pop()
while self.stack1:
self.stack2.append(self.stack1.pop())
while len(self.stack2) > 0:
return self.stack2.pop()