本节中的 反转 可以使用 reverse 方法吗?
来源:2-8 用两个栈实现一个队列

Liiiu
2022-02-24
如题,以下代码如果使用 reverse 岂不是只用一个数组就能实现吗?顺便问下 如果使用 reverse 的话,delete 的时间复杂度也是 O(n) 吧
export class MyQueue {
private stack: number[] = []
/**
* 入队
* @param n number
*/
add(n: number) {
this.stack.push(n)
}
/**
* 出队
*/
delete(): number | null {
let res
let stack = this.stack
stack.reverse()
res = stack.pop()
stack.reverse()
return res || null
}
// 函数前加 get , 就可以使用属性形式调用 ( .length )
get length(): number {
return this.stack.length
}
}
// 功能测试
// const q = new MyQueue()
// q.add(100)
// q.add(200)
// q.add(300)
// console.log(q.length)
// console.log(q.delete())
// console.log(q.length)
写回答
1回答
-
双越
2022-02-25
可以用 reverse 来翻转。翻转之后 add 和 delete 操作就互换了。
012022-03-08
相似问题