''' 在Python环境下,原生的list即为一个栈实现,我们直接通过定义两个list即可定义出两个栈: 1、首先要明确队列的特性是先进先出,栈的特性是先进后出; 2、进队列的方法里我们只要有容器能装元素就行了,所以直接往栈1里压; 3、在出队列方法里,要保证出队列的是最先进入的元素: 4、在往栈2压完一批元素后,栈1进了新的元素想往栈2压的时候,栈2必须把上一批的元素清空了才行(也就是栈2必须是空的)。 ''' class Solution: def __init__(self): self.stack1=[] # 新建空列表 self.stack2=[] # 新建空列表 def push(self, node): # write code here self.stack1.append(node) # 所有push弹入的元素都加入stack1列表 def pop(self): # return xx if self.stack2==[]: # 如果此时栈stack2为空,则需要将栈stack1中的所有元素依次出栈并入栈到stack2 while self.stack1: self.stack2.append(self.stack1.pop()) # 如果栈stack2不为空,直接弹出栈stack2元素 return self.stack2.pop()