我的函数是一个删除堆栈中间元素的递归函数。编码平台已经给出了栈的实现,这意味着我可以访问push()和pop()方法。
我想pop()直到到达中间位置,然后将弹出的元素推回去。
但是,如果我存储pop,它显示为未定义
如果我console.log这个pop调用,它返回undefined。
class Solution
{
solve(s,midEle) {
let self = this;
if(midEle===1){
s.pop();
return;
}
let temp = s.pop();
self.solve(s,midEle-1);
s.push(temp)
return
}
//Function to delete middle element of a stack.
deleteMid(s, sizeOfStack)
{
// code here
const mid = Math.ceil((sizeOfStack+1)/2);
this.solve(s,mid);
}
}
这是因为您没有返回任何内容:
return;
javascript中,none的值为undefined
。因此,上面的代码返回值undefined
。
要返回从数组中弹出的值,只需返回它:
var item = s.pop();
return item;
或更简单:
return s.pop();