对单链表JavaScript进行简单的递归迭代

时间:2017-03-08 23:46:01

标签: javascript recursion linked-list

我正在努力开始使用JavaScript。我实现了一个简单的函数将数组转换为单链表,然后递归迭代它以返回特定位置的值。我的代码当前记录undefined所有位置值,除了0。是什么导致它以这种方式运行?

var list = arrayToList([1,2,3,4,5]);

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

function nth(list, count) {
  if (!list) return undefined;
  if (count == 0) return list.value;
  else nth(list.rest, count - 1);
}

console.log(nth(list,2));

2 个答案:

答案 0 :(得分:1)

问题在于"否则" nth函数中的子句不返回值,因此默认返回undefined

答案 1 :(得分:0)

看看我在这里的例子

https://github.com/aloksguha/smartll

或者您可以尝试将其作为节点库。 “智能-LL”。