js一刷暴力(but双百)
javascript
var mergeTwoLists = function(list1, list2) {
let p1=null,p2=null,head=null;
if (!list1) return list2;
if (!list2) return list1;
if(list1.val>=list2.val){
head=list2;
p2=list1;
p1=list2;
}else{
head=list1;
p1=list1;
p2=list2;
}
while(p2&&p1.next){
let cur=p2.next;
if(p2.val>=p1.val&&p2.val<=p1.next.val){
let temp=p1.next;
p1.next=p2;
p2.next=temp;
p1=p1.next;
p2=cur;
}
else{
p1=p1.next;
}
}
if(p1.next===null){
p1.next=p2;
}
return head;
};
js 一刷 循环迭代 设置哨兵
javascript
var mergeTwoLists = function(list1, list2) {
const dummy=new ListNode();//哨兵
let cur=dummy;
while(list1&&list2){
if(list1.val<=list2.val){
cur.next=list1;
list1=list1.next;
}
else{
cur.next=list2;
list2=list2.next;
}
cur=cur.next;
}
cur.next=list1??list2; //list不为空返回list1,为空返回list2
return dummy.next;
};
js一刷 递归
javascript
var mergeTwoLists = function(list1, list2) {
if(!list1) return list2;
if(!list2) return list1;
if(list1.val<list2.val){
list1.next=mergeTwoLists(list1.next,list2)
return list1;
}
else{
list2.next=mergeTwoLists(list2.next,list1)
return list2;
}
};