用两个栈实现队列
Last updated
Last updated
问题简述
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
思路
详见代码
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.s1 = []
self.s2 = []
def push(self, node):
self.s1.append(node)
def pop(self):
# if self.s2:
# return self.s2.pop()
# else:
# while self.s1:
# self.s2.append(self.s1.pop())
# return self.s2.pop()
# 更简洁的写法
if not self.s2:
while self.s1:
self.s2.append(self.s1.pop())
return self.s2.pop()