用两个栈实现队列
题目:用两个栈实现队列
用两个栈来实现一个队列,使用 n 个元素来完成 n 次在队列尾部插入整数( push )和 n 次在队列头部删除整数( pop )的功能。队列中的元素为 int 类型。保证操作合法,即保证pop操作时队列内已有元素。文章来源:https://www.toymoban.com/news/detail-649870.html
参考牛客的解题思路:
将 stack1 倒序写入 stack2 ,然后使用 python 中的 pop() 函数对 stack2 输出。文章来源地址https://www.toymoban.com/news/detail-649870.html
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
# write code here
self.stack1.append(node)
def pop(self):
# return xx
# 如果stack2不为空,直接将其出栈
if self.stack2:
return self.stack2.pop()
else:
# 栈是后进先出
# 将stack1的元素倒序入stack2,再将stack2出栈
for i in range(len(self.stack1)):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()
到了这里,关于每日一题之用两个栈实现队列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!