# @algorithm @lc id=100273 lang=python3
# @title yong-liang-ge-zhan-shi-xian-dui-lie-lcof
from collections import deque
class CQueue:
def __init__(self):
self.stack1 = deque()
self.stack2 = deque()
def appendTail(self, value: int) -> None:
self.stack1.append(value) # 入栈
def deleteHead(self) -> int:
if len(self.stack1) == 0:
return -1
for i in range(len(self.stack1) - 1):
self.stack2.append(self.stack1.pop())
res = self.stack1.pop()
for i in range(len(self.stack2)):
self.stack1.append(self.stack2.pop())
return res
思路
- 入栈的时候不要有过多操作
- 出栈的时候把第2个栈当作临时栈,临时存储数据罢了,返回第一个栈的最后一个结果之后,重新把数据返回栈1.