Skip to content

Commit da95352

Browse files
committed
merge two sorted lists solution
1 parent a5ca2cb commit da95352

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

โ€Žmerge-two-sorted-lists/byol-han.jsโ€Ž

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,32 @@
1111
* @return {ListNode}
1212
*/
1313
var mergeTwoLists = function (list1, list2) {
14-
let dummy = new ListNode(-1); // ์ž„์‹œ ๋…ธ๋“œ
14+
// ๊ฐ€์งœ(head ์—ญํ• ์„ ํ• ) ์ž„์‹œ ๋…ธ๋“œ ์ƒ์„ฑ
15+
// ์‹ค์ œ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ๋Š” dummy.next๋ถ€ํ„ฐ ์‹œ์ž‘๋จ
16+
let dummy = new ListNode(-1);
17+
18+
// ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ํฌ์ธํ„ฐ. ์ฒ˜์Œ์—” dummy์—์„œ ์‹œ์ž‘
1519
let current = dummy;
1620

21+
// ๋‘ ๋ฆฌ์ŠคํŠธ ๋ชจ๋‘ null์ด ์•„๋‹ ๋™์•ˆ ๋ฐ˜๋ณต (๋น„๊ต ๊ฐ€๋Šฅํ•œ ๋…ธ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ๊นŒ์ง€)
1722
while (list1 !== null && list2 !== null) {
23+
// list1์˜ ํ˜„์žฌ ๊ฐ’์ด ๋” ์ž‘์œผ๋ฉด list1 ๋…ธ๋“œ๋ฅผ current.next์— ๋ถ™์ž„
1824
if (list1.val < list2.val) {
19-
current.next = list1;
20-
list1 = list1.next;
25+
current.next = list1; // current ๋’ค์— list1 ๋…ธ๋“œ ์—ฐ๊ฒฐ
26+
list1 = list1.next; // list1 ํฌ์ธํ„ฐ๋ฅผ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™
2127
} else {
22-
current.next = list2;
23-
list2 = list2.next;
28+
current.next = list2; // current ๋’ค์— list2 ๋…ธ๋“œ ์—ฐ๊ฒฐ
29+
list2 = list2.next; // list2 ํฌ์ธํ„ฐ๋ฅผ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™
2430
}
25-
current = current.next;
31+
current = current.next; // current ํฌ์ธํ„ฐ๋„ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™ (๋ฆฌ์ŠคํŠธ๋ฅผ ๊ณ„์† ์ด์–ด๊ฐ€๊ธฐ ์œ„ํ•ด)
2632
}
2733

28-
// ๋‚จ์€ ๋…ธ๋“œ๋“ค ๋ถ™์ด๊ธฐ
34+
// ์œ„ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ค๋ฉด, ๋‘˜ ์ค‘ ํ•˜๋‚˜๋Š” null์ด ๋จ
35+
// ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ์•„์ง ์ •๋ ฌ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ ๊ทธ๋Œ€๋กœ ๋’ค์— ๋ถ™์—ฌ์คŒ
2936
current.next = list1 !== null ? list1 : list2;
3037

31-
return dummy.next; // dummy๋Š” ๊ฐ€์งœ๋‹ˆ๊นŒ next๋ถ€ํ„ฐ๊ฐ€ ์ง„์งœ head
38+
// dummy๋Š” ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์šฉ๋„์˜€์œผ๋‹ˆ, ์‹ค์ œ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ๋Š” dummy.next๋ถ€ํ„ฐ ์‹œ์ž‘
39+
return dummy.next;
3240
};
3341
// ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n + m) (n: list1์˜ ๊ธธ์ด, m: list2์˜ ๊ธธ์ด)
34-
// ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1) (dummy ๋…ธ๋“œ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉ)
42+
// ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1) (์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„ ์‚ฌ์šฉ ์—†์Œ)

0 commit comments

Comments
ย (0)