版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxiaoley/article/details/82077658
题目:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路:
给定两个栈,stack1和stack2。入队列时,直接push到stack1中;出队列时,判断stack2是否为空,非空则直接pop出stack2的栈顶,否则将stack1中的所有内容顺序pop出来压入到stack2中,再pop出stack2的栈顶即可。
代码:
# -*- 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
if len(self.stack2)==0:
while(self.stack1):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()