【发布时间】:2017-11-27 18:11:36
【问题描述】:
我正在研究 Eloquent Javascript 中的示例,但我似乎无法生成一个可行的解决方案来递归地从数组转到链表。
第一种(迭代)方法似乎有效。我被递归难住了。朝着正确的方向推动将不胜感激。这是我目前写的代码:
function arrayToList(arr) {
var retObj = {};
var current = retObj;
for (var i = 0; i < arr.length; i++) {
current.value = arr[i];
if (arr[i + 1] === undefined) {
current.rest = null;
} else {
current.rest = {};
}
current = current.rest;
}
return retObj;
}
function recArrayToList(arr, obj) {
if (arr.length === 0) {
return 'DONE!';
}
obj.value = arr[0];
obj.rest = {};
return recArrayToList(arr.slice(1), obj.rest);
}
【问题讨论】:
-
“链表”是什么意思?输入和预期结果的样本总是有帮助
-
我认为你不想返回字符串 'DONE!',你有没有尝试返回
obj? -
@charlietfl:相当标准data structure...?
-
@IrkenInvader:返回
obj会给出一个空对象。 @charleitfl:console.log(arrayToList([10, 20])); // → {value: 10, rest: {value: 20, rest: null}}(取自 Eloquent Javascript)
标签: javascript recursion linked-list