将数组转换为链接列表 - 来自 Eloquent Javascript

2024-04-06

这是书中我无法理解的挑战之一,或者我的大脑无法分解它。这是解决函数:

 function arrayToList(array) {
  var list = null;
  for (var i = array.length - 1; i >= 0; i--)
    list = {value: array[i], rest: list};
  return list;
}

console.log(arrayToList([10, 20]));
// → {value: 10, rest: {value: 20, rest: null}}

所以我们反向循环数组所以第一次列表应该是:

list = {value:20, rest:{value:20, rest:**mind blows here**}}

任何人都可以帮助我完成这一过程吗?


reducer 可用于从数组元素创建链表。

function ListNode(val, next) {
  this.val = (val === undefined ? 0 : val)
  this.next = (next === undefined ? null : next)
}

let input = [1, 2, 3];


let head = input.reverse().reduce((acc, curr) => {
  if (acc == null) {
    acc = new ListNode(curr);

  } else {
    acc = new ListNode(curr, acc);
  }
  return acc;
}, null);

console.log(head);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数组转换为链接列表 - 来自 Eloquent Javascript 的相关文章

随机推荐