From 544d19e9b8f1632b0d5399035166257118108c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EB=AA=85=EA=B8=B0?= Date: Fri, 23 May 2025 15:39:31 +0900 Subject: [PATCH] 3 --- jungmyunggi/3.js | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 jungmyunggi/3.js diff --git a/jungmyunggi/3.js b/jungmyunggi/3.js new file mode 100644 index 0000000..f7e1f22 --- /dev/null +++ b/jungmyunggi/3.js @@ -0,0 +1,49 @@ +/** + * 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 = false; + const result = []; + + let node1 = l1; + let node2 = l2; + while (node1 || node2) { + let v1 = node1 ? node1.val : 0; + let v2 = node2 ? node2.val : 0; + let temp = v1 + v2; + if (carry) temp++; + if (temp >= 10) { + carry = true; + result.push(temp - 10); + } else { + carry = false; + result.push(temp); + } + + node1 = node1.next || 0; + node2 = node2.next || 0; + } + + if (carry) { + result.push(1); + } + + const dummy = new ListNode(0); + let current = dummy; + + for (const num of result) { + current.next = new ListNode(num); + current = current.next; + } + + return dummy.next; +};