题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
CODE:
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
# 使用列表代替栈结构,现在列表只能先进后出,进用append(),出用pop().
self.stack1 = []
self.stack2 = []
def push(self, node):
# write code here
self.stack1.append(node) # 入队直接把元素添加到第一个栈里面
def pop(self):
# return xx
# 出队先出第一个入队的元素,先把stack1里面的元素全部弹出并依次压入stack2.这样直接倒置了元素顺序。然后每次弹出stack2就是入队的顺序了。
if self.stack2 == []: # 先判断stack2是否为空,若为空则继续判断stack1是否为空,如果1,2都是空,返回None。若1空,2不空,则直接弹出2的元素。
if self.stack1 == []:
return None
else: # 1不空,2空,则将1的内容依次弹出压入2中
for i in range(len(self.stack1)):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()