算法系列-链表

21 阅读1分钟

链表

链表是多个元素组成的列表,元素存储不连续,用next指针连在一起。JavaScript中没有链表,但是可以用Object模拟链表

TS 实现


js

复制代码

/**

* 定义一个 node 节点

*/

interface ILinkListNode {

value: number

next?: ILinkListNode

}

  


/**

* 根据数组创建单向链表

* @param arr

* @returns

*/

function createLinkList(arr: number[]): ILinkListNode {

const len = arr.length

if (len === 0) throw new Error('arr is empty')

  


let curNode: ILinkListNode = {

value: arr[len - 1]

}

if (len === 1) return curNode

  


for (let i = len - 2; i >= 0; i--) {

curNode = {

value: arr[i],

next: curNode

}

}

  


return curNode

}

使用场景

  • 场景一:JS 中的原型链

  • 场景二:使用链表指针获取 JSON 的节点值

LeetCode 题目