export type GeneralLinkedNode = LinkedNode | null; export interface LinkedNode { /** * 值域 */ val: T; /** * 后继节点 */ next?: GeneralLinkedNode; } /** * 数组转链表 * @param initArr 原始数组 * @returns */ export function arrToLinkedList(initArr: T[]): GeneralLinkedNode { if (!Array.isArray(initArr) || initArr.length === 0) { return null; } let head: GeneralLinkedNode = null; let tail: GeneralLinkedNode = null; initArr.forEach((item: T) => { let node: GeneralLinkedNode = { val: item, next: null, }; if (head === null) { head = node; tail = node; } else { tail!.next = node; tail = node; } }); return head; }