题目:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 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