js一刷自解暴力
javascript
var addTwoNumbers = function(l1, l2) {
let p1=l1,p2=l2,m=0;
let bummy=new ListNode();
let cur=bummy
while(p1&&p2){
let node=new ListNode();
let value=p1.val+p2.val+m;
m=0;
if(value>=10){
m = Math.floor(value / 10);
value=value%10;
}
node.val=value;
cur.next=node;
cur=node;
p1=p1.next;
p2=p2.next;
}
while(p1){
let node=new ListNode();
let value=p1.val+m;
m=0;
if(value<10){
node.val=value;
node.next=p1.next;
cur.next=node;
break;
}
else{
m = Math.floor(value / 10);
value=value%10;
node.val=value;
cur.next=node;
cur=node;
p1=p1.next;
}
}
while(p2){
let node=new ListNode();
let value=p2.val+m;
m=0;
if(value<10){
node.val=value;
node.next=p2.next;
cur.next=node;
break;
}
else{
m = Math.floor(value / 10);
value=value%10;
node.val=value;
cur.next=node;
cur=node;
p2=p2.next;
}
}
if(m){
let node=new ListNode();
node.val=m;
cur.next=node;
}
return bummy.next;
};
js一刷优化
javascript
var addTwoNumbers = function(l1, l2) {
let dummy = new ListNode(0);
let cur = dummy;
let m = 0;
while(l1||l2||m){
if(l1){
m+=l1.val;
l1=l1.next;
}
if(l2){
m+=l2.val;
l2=l2.next;
}
cur.next=new ListNode(m%10);
m=Math.floor(m/10);
cur=cur.next;
}
return dummy.next;
};
js一刷 递归
javascript
var addTwoNumbers = function(l1, l2,m=0) {
if(l1===null&&l2===null&&m===0){
return null;
}
let sum=m;
if(l1){
sum+=l1.val;
l1=l1.next;
}
if(l2){
sum+=l2.val;
l2=l2.next;
}
return new ListNode(sum%10,addTwoNumbers(l1,l2,Math.floor(sum/10)));
};