2.用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程就是一个队列的先进先出
在pop时候,要注意判断,判断栈2是否为空,如果栈2为空,判断栈1是否为空,如果栈1也为空则返回None,否则将栈1中的所有元素都弹到栈2,记住一定要是全部因为要维护入队的先后状态。
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stackA = []
self.stackB = []
def push(self, node):
# write code here
self.stackA.append(node)
def pop(self):
# return xx
if self.stackB:
return self.stackB.pop()
elif not self.stackA:
return None
else:
while self.stackA:
self.stackB.append(self.stackA.pop())
return self.stackB.pop()
本文介绍了一种使用两个栈来实现队列的方法,通过将元素首先压入第一个栈,然后弹出并压入第二个栈,最后从第二个栈中弹出元素,实现了队列的先进先出特性。在进行pop操作时,需检查第二个栈是否为空,若空则将第一个栈的所有元素转移过来。
2110

被折叠的 条评论
为什么被折叠?



