题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
# -*- coding:utf-8 -*-
# 用stack1保存队列
# 当需要出队时,用stack2做中转,先将stack1所有元素出栈并存入是stack2中
# 然后将stack2栈顶元素出栈
# 再将stack2中所有元素出栈并对stack1入栈
class Solution:
def __init__(self):
self.stack1 = []
self.stack2 = []
def push(self, node):
self.stack1.append(node)
def pop(self):
while self.stack1:
self.stack2.append(self.stack1.pop())
ans = self.stack2.pop()
while self.stack2:
self.stack1.append(self.stack2.pop())
return ans
腾讯成长空间 5960人发布