|
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