原理

  1. 栈1 用来存储 输入Push 的 元素
  2. 栈2 用来存储 反转(因为队列的特性为先进先出,而栈为先进后出,所以需要反转)后的元素,以便Pop
  3. 当栈2 为空时,则需要从栈1中copy反转过后的元素,再进行pop操作
    class Solution:
     def __init__(self):
         self.stack1 = []
         self.stack2 = []
     def push(self, node):
         self.stack1.append(node)
     def pop(self):
         if not self.stack2:
    #             反转 栈1 以便复制到 栈2中
             self.stack1.reverse()
    #             复制到 栈2 中
             self.stack2 = self.stack1.copy()
    #             因为已经复制过, 清空栈1
             self.stack1.clear()
         return self.stack2.pop()