题目描述:
合并两个已排序的链接列表并将其作为新列表返回。新列表应该通过拼接前两个列表的节点来完成。
Example 1:
输入: 1-> 2-> 4,1-> 3-> 4
输出: 1-> 1-> 2-> 3-> 4-> 4
思路:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var mergeTwoLists
还是链表类问题,
代码:
var mergeTwoLists = function(l1, l2) {
//创建一个新链表,用来储存结果
let l3 = new ListNode();
//curr相当于指针去参与code执行,返回结果时候需要l3来返回结果
let curr = l3;
//l1,l2长度一样时,判断拼接,
//当不一样时,直接拼接不为空的那一个
//因为判断拼接会比大小,所以剩下的肯定是最大的,不用考虑会比前面的小
while(l1 !=null && l2 !=null){
//判断拼接,
if(l1.val < l2.val){
curr.next = l1;
l1 = l1.next;
}else{
curr.next = l2;
l2 = l2.next;
}
//移动指针,当前操作的对象
curr = curr.next
}
//主要是为了 在l1,l2长度不相等时,拼接剩下的
//相等则为空
curr.next = l1 || l2;
return l3.next
};
|