图片转自LeetCode:力扣
使用stack1为队列使用,stack2为辅助栈
当在给队列添加元素时,先将stack1队列中所有的元素移动到辅助栈stack2中,之后将新元素添加推入队列stack1当中,再将stack2中的所有元素移动到队列stack1当中
在删除时判断stack1是否为空,不为空则直接删除。
class CQueue:
def __init__(self):
self.stack1 ,self.stack2 = [],[]
def appendTail(self, value: int) -> None:
n = len(self.stack1)
while n >0:
self.stack2.append(self.stack1.pop())
n-=1
self.stack1.append(value)
n = len(self.stack2)
while n >0:
self.stack1.append(self.stack2.pop())
n-=1
return self.stack1
def deleteHead(self) -> int:
if not self.stack1:return -1
return self.stack1.pop()