From 6100b562207715cdaa33d8fde12adb9241fa8b7f Mon Sep 17 00:00:00 2001 From: Jeongmin Lee Date: Mon, 21 Apr 2025 00:29:17 +0900 Subject: [PATCH 1/3] merge-two-sorted-list solution --- merge-two-sorted-lists/froggy1014.js | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 merge-two-sorted-lists/froggy1014.js diff --git a/merge-two-sorted-lists/froggy1014.js b/merge-two-sorted-lists/froggy1014.js new file mode 100644 index 000000000..89827c67f --- /dev/null +++ b/merge-two-sorted-lists/froggy1014.js @@ -0,0 +1,37 @@ +// 시간 복잡도는 list1과 list2의 길이를 더한 것이다. 그래서 O(n + m) +// 공간 복잡도는 알고리즘에서 사용하는 새로운 메모리는 없다. 그래서 O(1) + +/** + * Definition for singly-linked list. + * function ListNode(val, next) { + * this.val = (val===undefined ? 0 : val) + * this.next = (next===undefined ? null : next) + * } + */ +/** + * @param {ListNode} list1 + * @param {ListNode} list2 + * @return {ListNode} + */ +var mergeTwoLists = function (list1, list2) { + if (list1 === null) return list2; + if (list2 === null) return list1; + + let start = new ListNode(); + let current = start; + + while (list1 !== null && list2 !== null) { + if (list1.val <= list2.val) { + current.next = list1; + list1 = list1.next; + } else { + current.next = list2; + list2 = list2.next; + } + current = current.next; + } + + current.next = list1 || list2; + + return start.next; +}; From 74f2553537c807b65a2ece8ec8dcd3f27f0b770c Mon Sep 17 00:00:00 2001 From: Jeongmin Lee Date: Tue, 22 Apr 2025 22:16:53 +0900 Subject: [PATCH 2/3] maximum depth of binar tree solution --- maximum-depth-of-binary-tree/froggy1014.js | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 maximum-depth-of-binary-tree/froggy1014.js diff --git a/maximum-depth-of-binary-tree/froggy1014.js b/maximum-depth-of-binary-tree/froggy1014.js new file mode 100644 index 000000000..e8131c880 --- /dev/null +++ b/maximum-depth-of-binary-tree/froggy1014.js @@ -0,0 +1,23 @@ +// 시간복잡도: O(n) 모든 노드를 한번씩 방문하기 때문에 n +// 공간복잡도: O(n) 최악의 경우 모든 노드가 한줄로 이어져 있을 때 스택에 모든 노드를 저장해야 하기 때문에 n + +/** + * Definition for a binary tree node. + * function TreeNode(val, left, right) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + */ +/** + * @param {TreeNode} root + * @return {number} + */ +var maxDepth = function (root) { + if (!root) return 0; + + return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; +}; + +console.log(maxDepth([3, 9, 20, null, null, 15, 7])); +console.log(maxDepth([1, null, 2])); \ No newline at end of file From 0de4758c1dcfd915d4e2fc8491e3d5d2246fc513 Mon Sep 17 00:00:00 2001 From: Jeongmin Lee Date: Sun, 27 Apr 2025 17:32:10 +0900 Subject: [PATCH 3/3] chore: add eol --- maximum-depth-of-binary-tree/froggy1014.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maximum-depth-of-binary-tree/froggy1014.js b/maximum-depth-of-binary-tree/froggy1014.js index e8131c880..d7afb2514 100644 --- a/maximum-depth-of-binary-tree/froggy1014.js +++ b/maximum-depth-of-binary-tree/froggy1014.js @@ -15,9 +15,9 @@ */ var maxDepth = function (root) { if (!root) return 0; - + return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; }; console.log(maxDepth([3, 9, 20, null, null, 15, 7])); -console.log(maxDepth([1, null, 2])); \ No newline at end of file +console.log(maxDepth([1, null, 2]));