《剑指Offer》刷题之用两个栈实现队列
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 - 代码1:
# -*- coding:utf-8 -*-
class Solution:
a = []
b = []
def push(self, node):
self.a.append(node)
def pop(self):
if len(self.b) > 0:
return self.b.pop()
while self.a:
self.b.append(self.a.pop())
if len(self.b) > 0:
return self.b.pop()
- 算法说明:
栈的操作都在栈顶,而队列操作是队尾进队,队头出队;
进栈和进队列操作一样的;
出对列的时候,将所有元素存入栈,然后再执行出栈操作模拟出多列操作,注意元素顺序。