栈模拟队列 [需要两个栈]
1.s1负责入队操作
2.s2中如果没有元素就从s1中出栈出完,s2再出栈
3.处理特殊情况,如果是空队列出队。判断两次是否s2空就行
class CQueue:
def __init__(self):
self.s1 = []
self.s2 = []
def appendTail(self, value: int) -> None:
self.s1.append(value)
def deleteHead(self) -> int:
if len(self.s2) == 0:
while len(self.s1):
self.s2.append(self.s1.pop())
if len(self.s2) == 0:
return -1
return self.s2.pop()
队列模拟栈[不需要辅助队列]
如何用队列模拟栈。
只需要入栈就是入队,出栈就循环栈长度减一次,然后出队。