合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:
输入: l1 = [1,2,4], l2 = [1,3,4]
输出: [1,1,2,3,4,4]
思路
创建一个初始头节点,将头节点与list1和list2中较小的那个连接,并且将对应list的指针下移,并且将头节点的指针下移,更新list的链表和头节点链表,直到有一个链表为空了,最后还要把剩下那个没空的链表加到头节点后面
实现
var mergeTwoLists = function(list1, list2) {
//创建一个虚拟头节点
let head=new ListNode(0)
let p=head
while(list1&&list2){
if(list1.val<list2.val){
p.next=list1
list1=list1.next
}else{
p.next=list2
list2=list2.next
}
p=p.next
}
//这里要判断最后一次跳出循环时,p.next指向哪个节点(指向的那个就是空节点)
p.next==list1?p.next=list2:p.next=list1
return head.next
};