自己写的代码答案:
var MyQueue = function() {
this.stackA = [];
this.stackB = [];
};
/**
* @param {number} x
* @return {void}
*/
MyQueue.prototype.push = function(x) {
if(this.stackA.length) {
this.stackB.push(x);
} else {
this.stackA.push(x);
this.stackB.push(x);
}
};
/**
* @return {number}
*/
MyQueue.prototype.pop = function() {
if(this.stackB.length) {
const lenB = this.stackB.length;
for(let i = 0; i < lenB - 1; i++) {
let item = this.stackB.pop();
this.stackA.push(item);
}
let res = this.stackB.pop();
const lenA = this.stackA.length;
for(let i = 0; i < lenA - 1; i++) {
this.stackB.push(this.stackA.pop());
}
this.stackA = this.stackB[0]? [this.stackB[0]]:[];
return res;
}
};
/**
* @return {number}
*/
MyQueue.prototype.peek = function() {
return this.stackA[this.stackA.length - 1];
};
/**
* @return {boolean}
*/
MyQueue.prototype.empty = function() {
return this.stackB.length == 0? true:false;
};
/**
* Your MyQueue object will be instantiated and called as such:
* var obj = new MyQueue()
* obj.push(x)
* var param_2 = obj.pop()
* var param_3 = obj.peek()
* var param_4 = obj.empty()
*/