思路:对于队列来说是先入先出的,栈是先入后出的,这时我们通过俩个栈可以实现一个队列,当入队时,我们将数值append到stack1中,当出队时,我们先将stack1中的值pop出来依次进入到stack2中直到stack1为空,然后返回stack2.pop(),这个值就是我们最先进入stack1栈中的值,这样就实现了队列。
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1=[]
self.stack2=[]
def push(self, node):
self.stack1.append(node)
# write code here
def pop(self):
if self.stack2==[]:
while self.stack1:
self.stack2.append(self.stack1.pop())
return self.stack2.pop()