leetcode 用两个栈实现队列
须知:
Python的栈的pop( )函数返回栈顶元素
思路: 两个栈 一个栈A是含有元素的, 一个栈B是空栈
这个算法题,首先需要知道 队列 和栈的区别
队列是先进先出 ,栈是先进后出
这个题 是 用两个先进后出的栈 来实现 先进后出的队列
交的代码: 几秒前
语言: python3
class CQueue:
def __init__(self):
self.A = []
self.B = []
def appendTail(self, value: int) -> None:
self.A.append(value)
def deleteHead(self) -> int:
# if self.B :
return self.B.pop()
正确方法
if not self.A return -1
while self.A :
self.B.append(self.A.pop())
return self.B.pop()
错误方法
# if self.A:
# for element in self.A:
self.B.append(element)
return self.B.pop()
#else:
return -1
错误方法的原因在于 for 循环中的 每个元素是 是按照 list 原来顺序 遍历
while 中 pop 的方法是倒序
网友评论