|
| 1 | +/** |
| 2 | + * Definition for singly-linked list. |
| 3 | + * public class ListNode { |
| 4 | + * int val; |
| 5 | + * ListNode next; |
| 6 | + * ListNode() {} |
| 7 | + * ListNode(int val) { this.val = val; } |
| 8 | + * ListNode(int val, ListNode next) { this.val = val; this.next = next; } |
| 9 | + * } |
| 10 | + */ |
| 11 | + /* |
| 12 | + 1. ๋ฌธ์ ์ดํด |
| 13 | + ๋๊ฐ์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋จธ์งํ๋ค |
| 14 | + ์ด๋ ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ํฉ์น๋ ๊ฒ์ด๋ฏ๋ก 2๊ฐ์ head๋ฅผ ๋น๊ตํด์ ์๊ฑฐ๋ ๊ฐ์ ๊ฒ์ next๋ก ๋ถ์ด๋ฉด ๋๋ค |
| 15 | +
|
| 16 | + 2. ์๊ณ ๋ฆฌ์ฆ |
| 17 | + while ์ฌ์ฉ, ์ฌ๊ท |
| 18 | +
|
| 19 | + 3. ์์ธ ์ผ์ด์ค |
| 20 | +
|
| 21 | + ๋์ค์ ํ๋์ ๋ฆฌ์คํธ๊ฐ ๋จผ์ null ์ด ๋๋ฒ๋ฆฌ๋ฉด ๋๋จธ์ง ๋ฆฌ์คํธ๋ ๋ถ์ฌ์ค์ผ ํ๋ฏ๋ก while ๋ฌธ์ด ๋๋ ๋ค์ ๋ถ์ฌ์ค์ผ ํ๋ค. |
| 22 | + |
| 23 | + 4. ๊ตฌํ |
| 24 | + ๊ฐ head๋ฅผ ๋น๊ตํด์ ๋ ์์ ๊ฒ์ head ๋ก ๋๊ณ ์์๊ฒ์ next์ ๋ค๋ฅธ ๋ฆฌ์คํธ์ head ๋ฅผ ๋ค์ ๋น๊ตํ๋ค |
| 25 | + ๋ง์ฝ ๊ฐ๋ค๋ฉด ๋์ค ํ๋๋ฅผ ์ ํํ๋ค |
| 26 | +์๋๋ค |
| 27 | +์ด๋ ๊ฒ ์์๊ฐ ๋์ด์ผ ํ์ง ์์๊น |
| 28 | +#0 ๋ฆฌ์คํธ1๊ณผ ๋ฆฌ์คํธ2๊ฐ Null์ด ์๋์ง ์ฒดํฌํ๋ค Null ์ด๋ฉด head ๋ฐํ. |
| 29 | +#1 ๋๊ฐ์ ๋น๊ตํ ๋
ธ๋๋ฅผ ์ด๊ธฐํ ํ๋ค |
| 30 | +#2 ๋๊ฐ์ ๊ฐ์ ๋น๊ตํ๋ค |
| 31 | +#3 ์์ ๊ฐ์ ์ด์ Head์ Next๋ก ์ ํ๋ค |
| 32 | +#4 ์์ ๊ฐ์ next๋ฅผ ๋ค์ ๋น๊ตํ ๋
ธ๋๋ก ์ธํ
ํ๋ค |
| 33 | +#5 2๋ฒ์ผ๋ก ๋ค์ ๋์๊ฐ์ ๋ฐ๋ณตํ๋ค |
| 34 | +
|
| 35 | +์ฆ ๋น๊ตํ ๋
ธ๋๋ฅผ ์ด๊ธฐํ ํ๊ณ |
| 36 | +๋น๊ตํด์ next๋ก ๋ฃ๊ณ |
| 37 | +๋ค์ ์ด๊ธฐํ ํด์ ๋น๊ตํ๋ค |
| 38 | +
|
| 39 | + ์๋ฅผ ๋ค์ด |
| 40 | + 1 - 2 - 3 |
| 41 | + 3 - 4 - 5 |
| 42 | + ์ผ ๊ฒฝ์ฐ |
| 43 | + 1์ด ์์ผ๋ฏ๋ก 1์ head ๋ก ๋๊ณ |
| 44 | + next๋ฅผ ๊ตฌํ๊ธฐ ์ํด 1์ Next์ 3์ ๋น๊ตํ๋ค |
| 45 | + 1์ Next๊ฐ 2์ด๋ฏ๋ก 1์ next๋ 2๊ฐ ๋๋ค |
| 46 | + 2์ Next์ 3์ ๋ค์ ๋น๊ตํ๋ค |
| 47 | +
|
| 48 | +๋ต์ง๋ฅผ ๋ณด๋ ์ฌ๊ท๋ก๋ ํ ์ ์๊ณ ๋ด๊ฐ ํ ๋ฐฉ์์ผ๋ก๋ ํ ์ ์๋ค. |
| 49 | +
|
| 50 | +๊ฐ์ฅ ์์ dummy๋ฅผ ๋์ด์ head๋ฅผ ์ธํ
ํ ์ ์๋ค๋ ์๊ฐ์ ํด์ผ๊ฒ ๋ค. |
| 51 | + */ |
| 52 | +class Solution { |
| 53 | + public ListNode mergeTwoLists(ListNode list1, ListNode list2) { |
| 54 | + ListNode dummy = new ListNode(-1); |
| 55 | + ListNode node = dummy; |
| 56 | + |
| 57 | + while (list1 != null && list2 != null) { |
| 58 | + // ๊ฐ ๋ฆฌ์คํธ์ ๊ฐ์ ๋น๊ต |
| 59 | + if (list1.val < list2.val) { |
| 60 | + node.next = list1; |
| 61 | + list1 = list1.next; |
| 62 | + } else { |
| 63 | + node.next = list2; |
| 64 | + list2 = list2.next; |
| 65 | + } |
| 66 | + |
| 67 | + // Node ์ ์ปค์๋ฅผ ๋ค์์ผ๋ก ์ด๋ |
| 68 | + node = node.next; |
| 69 | + } |
| 70 | + |
| 71 | + // ๋๋จธ์ง ๋ถ๋ถ์ ํ์ฌ Node ์ next๋ฅผ ๋ถ์ฌ์ฃผ๊ธฐ ์ํจ |
| 72 | + node.next = l1 != null ? l1 : l2; |
| 73 | + |
| 74 | + return dummy.next; |
| 75 | + } |
| 76 | +} |
0 commit comments