|
11 | 11 | * @return {ListNode} |
12 | 12 | */ |
13 | 13 | 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์์ ์์ |
15 | 19 | let current = dummy; |
16 | 20 |
|
| 21 | + // ๋ ๋ฆฌ์คํธ ๋ชจ๋ null์ด ์๋ ๋์ ๋ฐ๋ณต (๋น๊ต ๊ฐ๋ฅํ ๋
ธ๋๊ฐ ์์ ๋๊น์ง) |
17 | 22 | while (list1 !== null && list2 !== null) { |
| 23 | + // list1์ ํ์ฌ ๊ฐ์ด ๋ ์์ผ๋ฉด list1 ๋
ธ๋๋ฅผ current.next์ ๋ถ์ |
18 | 24 | if (list1.val < list2.val) { |
19 | | - current.next = list1; |
20 | | - list1 = list1.next; |
| 25 | + current.next = list1; // current ๋ค์ list1 ๋
ธ๋ ์ฐ๊ฒฐ |
| 26 | + list1 = list1.next; // list1 ํฌ์ธํฐ๋ฅผ ๋ค์ ๋
ธ๋๋ก ์ด๋ |
21 | 27 | } else { |
22 | | - current.next = list2; |
23 | | - list2 = list2.next; |
| 28 | + current.next = list2; // current ๋ค์ list2 ๋
ธ๋ ์ฐ๊ฒฐ |
| 29 | + list2 = list2.next; // list2 ํฌ์ธํฐ๋ฅผ ๋ค์ ๋
ธ๋๋ก ์ด๋ |
24 | 30 | } |
25 | | - current = current.next; |
| 31 | + current = current.next; // current ํฌ์ธํฐ๋ ๋ค์ ๋
ธ๋๋ก ์ด๋ (๋ฆฌ์คํธ๋ฅผ ๊ณ์ ์ด์ด๊ฐ๊ธฐ ์ํด) |
26 | 32 | } |
27 | 33 |
|
28 | | - // ๋จ์ ๋
ธ๋๋ค ๋ถ์ด๊ธฐ |
| 34 | + // ์ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ค๋ฉด, ๋ ์ค ํ๋๋ null์ด ๋จ |
| 35 | + // ๋๋จธ์ง ํ๋๋ ์์ง ์ ๋ ฌ๋ ์ํ์ด๋ฏ๋ก ๊ทธ๋๋ก ๋ค์ ๋ถ์ฌ์ค |
29 | 36 | current.next = list1 !== null ? list1 : list2; |
30 | 37 |
|
31 | | - return dummy.next; // dummy๋ ๊ฐ์ง๋๊น next๋ถํฐ๊ฐ ์ง์ง head |
| 38 | + // dummy๋ ์ฒซ ๋ฒ์งธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฉ๋์์ผ๋, ์ค์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ๋ dummy.next๋ถํฐ ์์ |
| 39 | + return dummy.next; |
32 | 40 | }; |
33 | 41 | // ์๊ฐ ๋ณต์ก๋: O(n + m) (n: list1์ ๊ธธ์ด, m: list2์ ๊ธธ์ด) |
34 | | -// ๊ณต๊ฐ ๋ณต์ก๋: O(1) (dummy ๋
ธ๋ ํ๋๋ง ์ฌ์ฉ) |
| 42 | +// ๊ณต๊ฐ ๋ณต์ก๋: O(1) (์ถ๊ฐ์ ์ธ ๊ณต๊ฐ ์ฌ์ฉ ์์) |
0 commit comments