• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Feb 15th, 2019 92 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. /**
2.  * Definition for singly-linked list.*/
3.   function ListNode(val) {
4.       this.val = val;
5.       this.next = null;
6.   }
7.
8. /**
9. You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
10.
11. You may assume the two numbers do not contain any leading zero, except the number 0 itself.
12.
14. What if you cannot modify the input lists? In other words, reversing the lists is not allowed.
15.
16. Example:
17.
18. Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
19. Output: 7 -> 8 -> 0 -> 7
20.  */
21. var addTwoNumbers = function(l1, l2) {
22.     if (!l1 && !l2) return null;
23.     var arr1 = buildArr(l1);
24.     var arr2 = buildArr(l2);
25.     if(arr1.length != arr2.length) padding(arr1, arr2);
26.
27.     var carry = 0;
28.     var sum = 0;
29.     var curr = null;
30.     var output = null;
31.     var i = 0;
32.     while (i < arr1.length || carry > 0){
33.         sum += carry;
34.         if (i !== arr1.length) sum += arr1[i] + arr2[i];
35.         carry = 0;
36.         if (sum > 9){
37.             carry = Math.floor(sum/10);
38.             sum = sum%10;
39.         }
40.
41.         curr = new ListNode(sum)
42.         sum = 0;
43.         if(output){
44.             curr.next = output;
45.         }
46.         output = curr;
47.         i++;
48.     }
49.     return output;
50. };
51.
52. function buildArr(l){
53.     if(!l) return [];
54.     var arr = [];
55.     while(l){
56.         arr.unshift(l.val);
57.         l = l.next;
58.     }
59.     return arr;
60. }
61.
63.     var diff = Math.abs(arr1.length - arr2.length);
64.     var modArr = (arr1.length > arr2.length) ? arr2 : arr1;
65.     for (var i = 0; i < diff; i++){
66.         modArr.push(0);
67.     }
68. }
69.
70. var l1 = new ListNode(5);
71. var l2 = new ListNode(5);
72. addTwoNumbers(l1,l2); // 1 -> 0
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top