题目:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
1 function ListNode(val){ 2 this.val=val; 3 this.next=null; 4 } 5 6 var addTwoNumbers=function(l1,l2){ 7 let res=new ListNode(-1), 8 cur=res, 9 carry=0; 10 while(l1!==null || l2!==null){ 11 let num1=l1==null?0:l1.val; 12 let num2=l2==null?0:l2.val; 13 14 let sum=num1+num2+carry; 15 16 carry=sum>=10 ? 1:0; 17 18 cur.next=new ListNode(sum%10); 19 cur=cur.next; 20 l1=l1?l1.next:l1; 21 l2=l2?l2.next:l2; 22 } 23 24 if(carry===1){ 25 cur.next=new ListNode(1); 26 } 27 28 return res.next; 29 30 } 31 32 function print_result(res){ 33 while(res!=null){ 34 console.log(res.val); 35 res=res.next; 36 } 37 } 38 39 var a243=new ListNode(5); 40 a243.next=new ListNode(4); 41 a243.next.next=new ListNode(3) 42 43 var a564=new ListNode(5); 44 a564.next=new ListNode(6); 45 a564.next.next=new ListNode(4) 46 47 var result = addTwoNumbers(a243,a564); 48 49 50 console.log("初始值:"); 51 print_result(a243); 52 console.log('-------------------'); 53 print_result(a564); 54 55 console.log("结果:"); 56 print_result(result);
来源:https://www.cnblogs.com/coderblog/p/10444425.html