用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例 1:
输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]
示例 2:
输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]
提示:
1 <= values <= 10000 最多会对 appendTail、deleteHead 进行 10000 次调用
class CQueue {
var inputList:[Int] = []
var outputList:[Int] = []
init() {
}
func appendTail(_ value: Int) {
inputList.append(value)
}
func deleteHead() -> Int {
// 把inputList的放到outputList然后退栈
if outputList.isEmpty == true {
while inputList.isEmpty == false {
outputList.append(inputList.popLast()!)
}
if outputList.isEmpty == false {
return outputList.popLast()!
}
else {
return -1
}
}
else {
return outputList.popLast()!
}
}
}
/**
* Your CQueue object will be instantiated and called as such:
* let obj = CQueue()
* obj.appendTail(value)
* let ret_2: Int = obj.deleteHead()
*/
let obj = CQueue()
obj.appendTail(5)
obj.appendTail(4)
let ret_2: Int = obj.deleteHead()
obj.appendTail(3)
let ret_3: Int = obj.deleteHead()
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有