赞
踩
思路1:(伪代码)
定义类:
初始化:
初始化栈1 #python用列表代替栈,以列表0为栈底,-1为栈顶即可
初始化栈2
push函数(要push的值):
栈1入栈,使用列表append即可将参数放入-1(栈顶)位置
pop函数:
由于两栈操作,将栈1入栈的元素取出再压入栈2,此时栈2的栈顶即为先入参数,然后栈2进行出栈操作就能实现队列的先进先出操作
如果栈2有值:
直接栈2出栈返回即可
如果栈2无值,栈1有值,则说明需要进行反转操作:
将栈1元素依次出栈放入栈2中
然后栈2出栈返回即可
否则:
说明队列空,返回空
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): self.stack1.append(node) # write code here def pop(self): if len(self.stack2) > 0: return self.stack2.pop(-1) elif len(self.stack1) > 0: while len(self.stack1) > 0: self.stack2.append(self.stack1.pop(-1)) return self.stack2.pop(-1) else: return None # return xx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。