232. 用栈实现队列
解题思路
使用两个栈来回倒,一个栈表示入队的,一个栈表示出队的。
代码
class MyQueue:
def __init__(self):
self.stack_in = []
self.stack_out = []
def push(self, x: int) -> None:
self.stack_in.append(x)
def pop(self) -> int:
if self.empty():
return None
if self.stack_out:
return self.stack_out.pop()
while self.stack_in:
self.stack_out.append(self.stack_in.pop())
return self.stack_out.pop()
def peek(self) -> int:
temp = self.pop()
self.stack_out.append(temp)
return temp
def empty(self) -> bool:
if len(self.stack_in) > 0 or len(self.stack_out) > 0:
return False
return True