Skip to content

Commit ac844e3

Browse files
committed
🔥 Merge k Sorted Lists
1 parent 041ddf3 commit ac844e3

File tree

2 files changed

+59
-28
lines changed

2 files changed

+59
-28
lines changed

README.md

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,32 @@ Solutions of LeetCode Blind 75 Problems in JavaScript
44

55
:goal_net: [Curated List of Top 75 LeetCode Questions](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU)
66

7-
| Problem | Difficulty | Tags | LeetCode |
8-
| --------------------------------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------- |
9-
| [Two Sum](./two-sum.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Hash Table` | [:link:](https://leetcode.com/problems/two-sum/) |
10-
| [Best Time to Buy and Sell Stock](./best-time-to-buy-and-sell-stock.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Dynamic Programming` | [:link:](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) |
11-
| [Contains Duplicate](./contains-duplicate.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Set`, `Sorting`, `Hash Table` | [:link:](https://leetcode.com/problems/contains-duplicate/) |
12-
| [Product of Array Except Self](./product-of-array-except-self.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array` | [:link:](https://leetcode.com/problems/product-of-array-except-self/) |
13-
| [Maximum Subarray](./maximum-subarray.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Dynamic Programming`, `Divide & Conquer` | [:link:](https://leetcode.com/problems/maximum-subarray/) |
14-
| [ Maximum Product Subarray](./maximum-product-subarray.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Dynamic Programming` | [:link:](https://leetcode.com/problems/maximum-product-subarray/) |
15-
| [Find Minimum in Rotated Sorted Array](./find-minimum-in-rotated-sorted-array.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Binary Search` | [:link:](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) |
16-
| [Search in Rotated Sorted Array](./search-in-rotated-sorted-array.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Binary Search` | [:link:](https://leetcode.com/problems/search-in-rotated-sorted-array/) |
17-
| [3Sum](./3sum.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Two Pointers`, `Sorting` | [:link:](https://leetcode.com/problems/3sum/) |
18-
| [Container With Most Water](./container-with-most-water.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Two Pointers`, `Greedy` | [:link:](https://leetcode.com/problems/container-with-most-water/) |
19-
| [Sum of Two Integers](./sum-of-two-integers.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Math`, `Bit Manipulation` | [:link:](https://leetcode.com/problems/sum-of-two-integers/) |
20-
| [Number of 1 Bits](./number-of-1-bits.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Bit Manipulation` | [:link:](https://leetcode.com/problems/number-of-1-bits/) |
21-
| [Counting Bits]() | | | [:link:](https://leetcode.com/problems/counting-bits/) |
22-
| [Missing Number]() | | | [:link:](https://leetcode.com/problems/missing-number/) |
23-
| [Reverse Bits]() | | | [:link:](https://leetcode.com/problems/reverse-bits/) |
24-
| [Climbing Stairs](./climbing-stairs.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Math`, `Dynamic Programming`, `Memoization` | [:link:](https://leetcode.com/problems/climbing-stairs/) |
25-
| [Word Search](./word-search.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Backtracking`, `Matrix` | [:link:](https://leetcode.com/problems/word-search/) |
26-
| [Clone Graph](./clone-graph.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Graph`, `HashTable`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/clone-graph/) |
27-
| [Course Schedule](./course-schedule.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Graph`, `Topological Sort`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/course-schedule/) |
28-
| [Pacific Atlantic Water Flow]() | | | [:link:](https://leetcode.com/problems/pacific-atlantic-water-flow/) |
29-
| [Number of Islands](./number-of-islands.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Matrix`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/number-of-islands/) |
30-
| [Longest Consecutive Sequence](./longest-consecutive-sequence.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `HashTable` | [:link:](https://leetcode.com/problems/longest-consecutive-sequence/) |
31-
| [Insert Interval](./insert-interval.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array` | [:link:](https://leetcode.com/problems/insert-interval/) |
32-
| [Reverse Linked List](./reverse-linked-list.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List` | [:link:](https://leetcode.com/problems/reverse-linked-list/) |
33-
| [Linked List Cycle](./linked-list-cycle.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List`, `Hash Table`, `Two Pointers` | [:link:](https://leetcode.com/problems/linked-list-cycle/) |
34-
| [Merge Two Sorted Lists](./merge-two-sorted-lists.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List`, `Recursion` | [:link:](https://leetcode.com/problems/merge-two-sorted-lists/) |
7+
| Problem | Difficulty | Tags | LeetCode |
8+
| --------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------- |
9+
| [Two Sum](./two-sum.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Hash Table` | [:link:](https://leetcode.com/problems/two-sum/) |
10+
| [Best Time to Buy and Sell Stock](./best-time-to-buy-and-sell-stock.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Dynamic Programming` | [:link:](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) |
11+
| [Contains Duplicate](./contains-duplicate.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Set`, `Sorting`, `Hash Table` | [:link:](https://leetcode.com/problems/contains-duplicate/) |
12+
| [Product of Array Except Self](./product-of-array-except-self.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array` | [:link:](https://leetcode.com/problems/product-of-array-except-self/) |
13+
| [Maximum Subarray](./maximum-subarray.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Array`, `Dynamic Programming`, `Divide & Conquer` | [:link:](https://leetcode.com/problems/maximum-subarray/) |
14+
| [ Maximum Product Subarray](./maximum-product-subarray.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Dynamic Programming` | [:link:](https://leetcode.com/problems/maximum-product-subarray/) |
15+
| [Find Minimum in Rotated Sorted Array](./find-minimum-in-rotated-sorted-array.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Binary Search` | [:link:](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) |
16+
| [Search in Rotated Sorted Array](./search-in-rotated-sorted-array.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Binary Search` | [:link:](https://leetcode.com/problems/search-in-rotated-sorted-array/) |
17+
| [3Sum](./3sum.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Two Pointers`, `Sorting` | [:link:](https://leetcode.com/problems/3sum/) |
18+
| [Container With Most Water](./container-with-most-water.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Two Pointers`, `Greedy` | [:link:](https://leetcode.com/problems/container-with-most-water/) |
19+
| [Sum of Two Integers](./sum-of-two-integers.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Math`, `Bit Manipulation` | [:link:](https://leetcode.com/problems/sum-of-two-integers/) |
20+
| [Number of 1 Bits](./number-of-1-bits.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Bit Manipulation` | [:link:](https://leetcode.com/problems/number-of-1-bits/) |
21+
| [Counting Bits]() | | | [:link:](https://leetcode.com/problems/counting-bits/) |
22+
| [Missing Number]() | | | [:link:](https://leetcode.com/problems/missing-number/) |
23+
| [Reverse Bits]() | | | [:link:](https://leetcode.com/problems/reverse-bits/) |
24+
| [Climbing Stairs](./climbing-stairs.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Math`, `Dynamic Programming`, `Memoization` | [:link:](https://leetcode.com/problems/climbing-stairs/) |
25+
| [Word Search](./word-search.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Backtracking`, `Matrix` | [:link:](https://leetcode.com/problems/word-search/) |
26+
| [Clone Graph](./clone-graph.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Graph`, `HashTable`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/clone-graph/) |
27+
| [Course Schedule](./course-schedule.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Graph`, `Topological Sort`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/course-schedule/) |
28+
| [Pacific Atlantic Water Flow]() | | | [:link:](https://leetcode.com/problems/pacific-atlantic-water-flow/) |
29+
| [Number of Islands](./number-of-islands.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `Matrix`, `DFS`, `BFS` | [:link:](https://leetcode.com/problems/number-of-islands/) |
30+
| [Longest Consecutive Sequence](./longest-consecutive-sequence.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array`, `HashTable` | [:link:](https://leetcode.com/problems/longest-consecutive-sequence/) |
31+
| [Insert Interval](./insert-interval.js) | <img src="https://img.shields.io/badge/-Medium-orange" /> | `Array` | [:link:](https://leetcode.com/problems/insert-interval/) |
32+
| [Reverse Linked List](./reverse-linked-list.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List` | [:link:](https://leetcode.com/problems/reverse-linked-list/) |
33+
| [Linked List Cycle](./linked-list-cycle.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List`, `Hash Table`, `Two Pointers` | [:link:](https://leetcode.com/problems/linked-list-cycle/) |
34+
| [Merge Two Sorted Lists](./merge-two-sorted-lists.js) | <img src="https://img.shields.io/badge/-Easy-green" /> | `Linked List`, `Recursion` | [:link:](https://leetcode.com/problems/merge-two-sorted-lists/) |
35+
| [Merge k Sorted Lists](./merge-k-sorted-lists.js) | <img src="https://img.shields.io/badge/-Hard-red" /> | `Linked List`, `Recursion`, `Divide & Conquer`, `Merge Sort` | [:link:](https://leetcode.com/problems/merge-k-sorted-lists/) |

merge-k-sorted-lists.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const mergeKLists = (lists) => {
2+
if (!lists || lists.length === 0) return null;
3+
4+
while (lists.length > 1) {
5+
let mergedLists = [];
6+
7+
for (let i = 0; i < lists.length; i += 2) {
8+
list1 = lists[i];
9+
list2 = i + 1 < lists.length ? lists[i + 1] : null;
10+
11+
mergedLists.push(mergeTwoLists(list1, list2));
12+
}
13+
14+
lists = mergedLists;
15+
}
16+
17+
return lists[0];
18+
};
19+
20+
const mergeTwoLists = (list1, list2) => {
21+
if (!list1 || !list2) return list1 || list2;
22+
23+
if (list1.val < list2.val) {
24+
list1.next = mergeTwoLists(list1.next, list2);
25+
return list1;
26+
} else {
27+
list2.next = mergeTwoLists(list1, list2.next);
28+
return list2;
29+
}
30+
};

0 commit comments

Comments
 (0)