将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
// ListNode {val: 3,next: ListNode { val: 2, next: ListNode { val: 4, next: null } } } // ListNode {val: 1,next: ListNode { val: 3, next: ListNode { val: 4, next: null } } } var mergeTwoLists = function(l1, l2) { var mergeHead = {val:-1,next:null}, crt = mergeHead;
//mergeHead的next永远指向最初的crt
while(l1 && l2){ if(l1.val > l2.val){
//crt不断在后移 crt.next = l2; l2 = l2.next }else{
crt.next = l1; l1 = l1.next } crt = crt.next; } crt.next = l1 || l2; //l1比较完没有了,把l2剩下的连上 return mergeHead.next // 返回的是mergeHead的next };