剑指 Offer 09. 用两个栈实现队列

  1. class CQueue:
  2. def __init__(self):
  3. self.A, self.B = [], [] # 两个栈,A输入,B输出
  4. def appendTail(self, value: int) -> None:
  5. self.A.append(value)
  6. def deleteHead(self) -> int:
  7. if self.B: return self.B.pop() # 如果B中有元素,直接把B的最后一个元素输出
  8. if not self.A: return -1 # 若A,B中均没有元素,deleteHead 操作返回 -1
  9. while self.A: # 若A中有元素,把A中元素,全部加到B中,然后输出B的最后一个元素,即A的第一个元素
  10. self.B.append(self.A.pop())
  11. return self.B.pop()