Bootstrap

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;
   
;