题目描述
解题思路
- 创建一个新的链表节点newNode
- 指定一个临时指针h指向这个新的节点newNode
- 使用while循环,在条件为L1和L2都不为空的条件下遍历,如果L1当前数据域的值小,就让newNode指向L1,反之指向L2
- while循环遍历完之后,如果L1和L2谁还有剩余,谁就加到newNode的尾部。
- 最后返回的是h临时指针的next域,因为h临时指针刚开始指向的是我们新创建的节点。
实现代码
var mergeTwoLists = function(l1, l2) {
let newNode = new ListNode();
const h = newNode;
while (l1 && l2) {
if (l1.val < l2.val) {
newNode.next = l1;
l1 = l1.next;
newNode = newNode.next;
} else {
newNode.next = l2;
l2 = l2.next;
newNode = newNode.next;
}
}
if (l1) newNode.next = l1;
if (l2) newNode.next = l2;
return h.next;
};