From 2e44e540e474814ca11c2fb1f4021b982f036a98 Mon Sep 17 00:00:00 2001 From: SooJungChae Date: Mon, 24 Jan 2022 22:24:35 +0900 Subject: [PATCH] [2] Add two numbers --- .../javascript/leetcode/2-add-two-numbers.js | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 algorithm/javascript/leetcode/2-add-two-numbers.js diff --git a/algorithm/javascript/leetcode/2-add-two-numbers.js b/algorithm/javascript/leetcode/2-add-two-numbers.js new file mode 100644 index 0000000..531fa24 --- /dev/null +++ b/algorithm/javascript/leetcode/2-add-two-numbers.js @@ -0,0 +1,31 @@ +// https://leetcode.com/problems/add-two-numbers/ + +/** + * Definition for singly-linked list. + * function ListNode(val) { + * this.val = val; + * this.next = null; + * } + */ +/** + * @param {ListNode} l1 + * @param {ListNode} l2 + * @return {ListNode} + */ +var addTwoNumbers = function(l1, l2) { + let node = null; + const carry = arguments[2]; + if (l1 || l2) { + const val1 = l1 ? l1.val : 0; + const val2 = l2 ? l2.val : 0; + const next1 = l1 ? l1.next : null; + const next2 = l2 ? l2.next : null; + const val = carry ? val1 + val2 + 1 : val1 + val2; + node = new ListNode(val % 10); + node.next = addTwoNumbers(next1, next2, val >= 10); + } else if (carry) { + node = new ListNode(1); + node.next = null; + } + return node; +};