|
21 | 21 | - ํฌ์ธํฐ๋ค์ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์ฐ๊ฒฐํจ
|
22 | 22 |
|
23 | 23 | ๋
ธํธ:
|
24 |
| -- ํฌ์ธํฐ ์กฐ์(์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ค์ง๊ธฐ, ๋ณํฉ) ๋ฐฉ๋ฒ์ ๋ค ๊น๋จน์ด์ ๋ณต์ต์ฉ ์์ ์ฃผ์์ ์ถ๊ฐํด๋ |
| 24 | +- ํฌ์ธํฐ ์กฐ์(์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ค์ง๊ธฐ, ๋ณํฉ)์ด ์ด๋ ค์. ์คํ ํ์ด๋ ์ค๋นํด๋๊ธฐ. |
25 | 25 | """
|
26 | 26 | # Definition for singly-linked list.
|
27 | 27 | # class ListNode:
|
|
31 | 31 | class Solution:
|
32 | 32 | def reorderList(self, head: Optional[ListNode]) -> None:
|
33 | 33 | # ์ด๊ธฐ ์ํ: 1->2->3->4->5
|
34 |
| - |
| 34 | + """ |
| 35 | + Do not return anything, modify head in-place instead. |
| 36 | + """ |
35 | 37 | # 1๋จ๊ณ: ์ค๊ฐ ์ง์ ์ฐพ๊ธฐ
|
36 |
| - slow = head # slow = 1 |
37 |
| - fast = head # fast = 1 |
| 38 | + slow = head |
| 39 | + fast = head |
| 40 | + |
38 | 41 | while fast and fast.next:
|
39 |
| - slow = slow.next # slow: 1->2->3 |
40 |
| - fast = fast.next.next # fast: 1->3->5->None |
41 |
| - # ๊ฒฐ๊ณผ: slow๋ 3์ ์์น |
42 |
| - |
| 42 | + slow = slow.next |
| 43 | + fast = fast.next.next |
| 44 | + |
43 | 45 | # 2๋จ๊ณ: ๋ท๋ถ๋ถ ๋ค์ง๊ธฐ
|
44 |
| - prev = None # prev = None |
45 |
| - curr = slow.next # curr = 4 (๋ท๋ถ๋ถ ์์์ ) |
| 46 | + prev = None |
| 47 | + curr = slow.next |
46 | 48 | slow.next = None # ๋ถ๋ฆฌ: 1->2->3 | 4->5
|
47 |
| - |
| 49 | + |
48 | 50 | while curr:
|
49 |
| - # 1ํ์ : curr=4, prev=None |
50 |
| - next_temp = curr.next # next_temp = 5 |
51 |
| - curr.next = prev # 4->None |
52 |
| - prev = curr # prev = 4 |
53 |
| - curr = next_temp # curr = 5 |
54 |
| - # ์ํ: 1->2->3 | 4->None, curr=5 |
55 |
| - |
56 |
| - # 2ํ์ : curr=5, prev=4 |
57 |
| - next_temp = curr.next # next_temp = None |
58 |
| - curr.next = prev # 5->4 |
59 |
| - prev = curr # prev = 5 |
60 |
| - curr = next_temp # curr = None (์ข
๋ฃ) |
61 |
| - # ์ํ: 1->2->3 | 5->4->None |
62 |
| - |
| 51 | + next_temp = curr.next |
| 52 | + curr.next = prev |
| 53 | + prev = curr |
| 54 | + curr = next_temp |
| 55 | + |
63 | 56 | # 3๋จ๊ณ: ์๋ถ๋ถ๊ณผ ๋ท๋ถ๋ถ ํฉ์น๊ธฐ
|
64 |
| - first = head # first = 1->2->3 |
65 |
| - second = prev # second = 5->4 |
66 |
| - |
| 57 | + first = head |
| 58 | + second = prev |
| 59 | + |
67 | 60 | while second:
|
68 |
| - # 1ํ์ : first=1, second=5 |
69 |
| - temp1 = first.next # temp1 = 2 |
70 |
| - temp2 = second.next # temp2 = 4 |
71 |
| - |
72 |
| - first.next = second # 1->5 |
73 |
| - second.next = temp1 # 5->2 |
74 |
| - # ํ์ฌ ์ํ: 1->5->2->3, ๋จ์ second = 4 |
75 |
| - |
76 |
| - first = temp1 # first = 2 |
77 |
| - second = temp2 # second = 4 |
78 |
| - |
79 |
| - # 2ํ์ : first=2, second=4 |
80 |
| - temp1 = first.next # temp1 = 3 |
81 |
| - temp2 = second.next # temp2 = None |
82 |
| - |
83 |
| - first.next = second # 2->4 |
84 |
| - second.next = temp1 # 4->3 |
85 |
| - # ํ์ฌ ์ํ: 1->5->2->4->3 |
86 |
| - |
87 |
| - first = temp1 # first = 3 |
88 |
| - second = temp2 # second = None (์ข
๋ฃ) |
89 |
| - |
90 |
| - # ์ต์ข
๊ฒฐ๊ณผ: 1->5->2->4->3 |
| 61 | + temp1 = first.next |
| 62 | + temp2 = second.next |
| 63 | + |
| 64 | + first.next = second |
| 65 | + second.next = temp1 |
| 66 | + |
| 67 | + first = temp1 |
| 68 | + second = temp2 |
0 commit comments