diff --git a/Medium/2. Add Two Numbers.js b/Medium/2. Add Two Numbers.js new file mode 100644 index 0000000..5f11483 --- /dev/null +++ b/Medium/2. Add Two Numbers.js @@ -0,0 +1,54 @@ +/* +You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list. + +You may assume the two numbers do not contain any leading zero, except the number 0 itself. + +Input: l1 = [2,4,3], l2 = [5,6,4] +Output: [7,0,8] +Explanation: 342 + 465 = 807. +Example 2: + +Input: l1 = [0], l2 = [0] +Output: [0] +Example 3: + +Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] +Output: [8,9,9,9,0,0,0,1] + +*/ +/** + * Definition for singly-linked list. + * function ListNode(val, next) { + * this.val = (val===undefined ? 0 : val) + * this.next = (next===undefined ? null : next) + * } + */ +/** + * @param {ListNode} l1 + * @param {ListNode} l2 + * @return {ListNode} + */ + +var addTwoNumbers = function (l1, l2) { + let carry = 0; + let dummy = new ListNode(0); + let current = dummy; + while (l1 || l2) { + let sum = carry; + if (l1) { + sum += l1.val; + l1 = l1.next; + } + if (l2) { + sum += l2.val; + l2 = l2.next; + } + carry = Math.floor(sum / 10); + current.next = new ListNode(sum % 10); + current = current.next; + } + if (carry > 0) { + current.next = new ListNode(carry); + } + return dummy.next; +}; diff --git a/question.txt b/question.txt new file mode 100644 index 0000000..ee926c7 --- /dev/null +++ b/question.txt @@ -0,0 +1 @@ +## When you add more dsa question?