Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions Leetcode/Easy/21_merge-two-sorted-lists.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/**
* ⭐️ 문제 정보 ⭐️
* 문제 : 21 - Merge Two Sorted Lists
* 레벨 : Easy
* 링크 : https://leetcode.com/problems/merge-two-sorted-lists
*/

// ANCHOR 2026.02.21 풀이
class ListNode {
val: number;
next: ListNode | null;
constructor(val?: number, next?: ListNode | null) {
this.val = val === undefined ? 0 : val;
this.next = next === undefined ? null : next;
}
}

function mergeTwoLists(
list1: ListNode | null,
list2: ListNode | null,
): ListNode | null {
const dummy = new ListNode();
let cur = dummy;
let ptr1 = list1;
let ptr2 = list2;

while (ptr1 && ptr2) {
if (ptr1.val < ptr2.val) {
// cur.next = new ListNode(ptr1.val);
cur.next = ptr1; // 기존 노드를 재사용하여 메모리 효율성 향상
ptr1 = ptr1.next;
} else {
// cur.next = new ListNode(ptr2.val);
cur.next = ptr2;
ptr2 = ptr2.next;
}
cur = cur.next;
}

while (ptr1) {
// cur.next = new ListNode(ptr1.val);
cur.next = ptr1;
ptr1 = ptr1.next;
cur = cur.next;
}
while (ptr2) {
// cur.next = new ListNode(ptr2.val);
cur.next = ptr2;
ptr2 = ptr2.next;
cur = cur.next;
}

return dummy.next;
}