Advertisement

TypeScript算法-21. 合并两个有序链表(包括将数组转换为链表以及遍历链表的方法)

阅读量:

TypeScript算法-21. 合并两个有序链表

  • 理念
    • 程序

思路

初始化两个指针l1, l2,使其分别指向两个链表的起始位置。在比较过程中,若某一指针所指向的ListNode节点数值较小,则依据该数值创建新节点,并将其连接至结果指针所指向的链表末尾。

需特别关注的情形包括:1. 其中一个链表或两个链表均为空的情况;2. 某一链表已全部遍历完成的情况;

代码

为便于后续调试工作,可预先编写两个辅助性函数:

  1. 用于将数组结构转化为链表形式的arrayToList方法:
复制代码
    function arrayToList (arr: number[]): ListNode | null {
    if (!arr.length) return null;
    let pointer = new ListNode();
    const head = pointer;
    for (let i = 0; i < arr.length; i++) {
        pointer.next = new ListNode(arr[i]);
        pointer = pointer.next;
    }
    return head.next;
    }
    
    

全部评论 (0)

还没有任何评论哟~