三、兩數相加

題目:this

給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,而且它們的每一個節點只能存儲 一位 數字。spa

若是,咱們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。code

您能夠假設除了數字 0 以外,這兩個數都不會以 0 開頭。blog

示例:io

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
緣由:342 + 465 = 807console

 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);
相關文章
相關標籤/搜索