我的问题是关于遍历节点列表是否满足递归的“函数调用自身”定义。我认为“调用自身”字面意思是调用自身的函数,而其他人则说,“自身”可能是第二个(或第三个)节点的相同函数。
并不是说我知道 JavaScript,但希望这会让这个想法得到理解:
Class Node {
var value = 0;
var kids = [];
var list = function(){
var rtn = value + "\n";
if (kids.length > 0){
for (var i=0; i<kids.length; i++){
rtn += kids[i].list();
}
}
return rtn;
};
}
现在假设我用节点对象填充 kids 数组,然后调用头节点的 list() 函数,它将追加头节点的值,然后追加所有孩子节点的值。我的问题是,这条线rtn += kids[i].list();
实际上是递归调用吗?
正如我所指出的,我会说不是因为(相同的)函数在不同的节点中运行,而是其他人说是 - 它的代码完全相同。我用谷歌找不到明确的答案,所以我可以问一下这里的共识是什么?