思路分析:Python中实现一个队列的push和pop比较简单,但是题目中的要求是用两个栈来实现队列,意思就是只能用stack的push和pop构建队列的push和pop,不能有其他的操作。因此,两个栈的话考虑队列和栈出入顺序是相反的,stack2相当于一个临时保存的地方。第一次循环,取出第一个元素,第二次循环重新复原。
Python题解
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
self.stack1.append(node)
def pop(self):
if not self.stack2:
while self.stack1:
self.stack2.append(self.stack1.pop())
cur = self.stack2.pop()
return cur
考查