链表
链表是多个元素组成的列表,元素存储不连续,用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 题目