题目描述

解题思路
- 首先我们要看清题干,本题给出的两个链表都是有序的,所以我们可以考虑双指针。
- 使用一个指针指向了l1的头节点,使用另一个指针指向l2的头节点,比较大小谁小谁添加到新节点的下一个。
- 当一个遍历完之后,结束循环,如果另一个有剩余则将其全部加到最新的链表末尾。
解题代码
var mergeTwoLists = function(l1, l2) {
let left = l1;
let right = l2;
const node = new ListNode();
let head = node;
while (left && right) {
if (left.val < right.val) {
head.next = left;
left = left.next;
head = head.next;
} else {
head.next = right;
right = right.next;
head = head.next;
}
}
if (!left && right) {
head.next = right;
}
if (!right && left) {
head.next = left;
}
return node.next
};
启示