JavaScript数组与链表互转

2,122 阅读1分钟

数组转单向链表

在刷题中常常会遇到链表类型的题;JavaScript中并没有提供链表方法;所以JavaScript在构造链表时需要自定义方法;
一下两种方法可以实现数组与链表相互转换;
仅供参考,如有错处,请不吝赐教。感谢

function NodeList(val) {
  this.val = val
  this.next = null
}

function arrayToNodeList(list) {
  let header = new NodeList(0)
  let current = header
  for (let i = 0; i < list.length; i++) {
    current.next = { val: list[i], next: null }
    current = current.next
  }
  return header.next
}

链表转数组

function nodeListToArray(node) {
  const list = []
  let header = node
  while (header) {
    list.push(header.val)
    header = header.next
  }
  return list
}