思路
栈:先进后出
队列:先进先出
因此基于以上,可以用两个栈实现队列。
对于栈1先正常进栈,在出栈进入栈2,在栈2里进行出栈,此时出栈顺序即队列顺序。
class CQueue:
def __init__(self):
self.B = []
self.A = []
def appendTail(self, value: int) -> None:
self.A.append(value)
def deleteHead(self) -> int:
if self.B:return self.B.pop()
if not self.A : return -1
while self.A:
self.B.append(self.A.pop())
return self.B.pop()