【题目描述】
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
【解题思路】
Python有内置的pop()操作,如图所示
所以这道题的思路是,在push操作时用两个栈实现队列,在pop操作时直接pop出队列即可。
在push操作时用两个栈实现队列的思路是:建立两个stack,一个stack其实就是最终的队列,另一个stack_tmp用来暂存stack中的元素:先把stack中的元素依次出栈,都进入到stack_tmp中;再把要插入队列的元素放到stack的栈底;最终把stack_tmp中的元素依次出栈,都进入到stack中,这样就能形成队列了。用Python实现的代码如下:
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack = []
self.stack_tmp = []
def push(self, node):
# write code here
while self.stack:
self.stack_tmp.append(self.stack.pop())
self.stack.append(node)
while self.stack_tmp:
self.stack.append(self.stack_tmp.pop())
def pop(self):
# return xx
return self.stack.pop()