HOT100——合并两个有序列表(JS实现)
原创
©著作权归作者所有:来自51CTO博客作者wb59770b05237ae的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目描述

解题思路
- 首先我们要看清题干,本题给出的两个链表都是有序的,所以我们可以考虑双指针。
- 使用一个指针指向了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
};
启示