File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ from typing import Optional
2+
3+
4+ # Definition for singly-linked list.
5+ class ListNode :
6+ def __init__ (self , val = 0 , next = None ):
7+ self .val = val
8+ self .next = next
9+
10+
11+ class Solution :
12+ def reorderList (self , head : Optional [ListNode ]) -> None :
13+ """
14+ - Idea:
15+ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๋ฐ์ผ๋ก ๋๋๊ณ , ๋ค์ชฝ(๋๋ฒ์งธ ๋ฆฌ์คํธ)์ ์ฐ๊ฒฐ ๋ฐฉํฅ์ ๋ฐ๋๋ก ๋ค์ง๋๋ค.
16+ ์ฒซ๋ฒ์งธ ๋ฆฌ์คํธ์ ๋๋ฒ์งธ ๋ฆฌ์คํธ์ ๋
ธ๋๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์ฐ๊ฒฐํ๋ค.
17+ - Time Complexity: O(n). n์ ์ ์ฒด ๋
ธ๋์ ์
18+ ๋ฆฌ์คํธ๋ฅผ ํ์ํ๊ณ ๋ณํฉํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋น๋กํ๋ค.
19+ - Space Complexity: O(1)
20+ ๋ช ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ์์ ๊ณต๊ฐ๋ง ์ฐจ์งํ๋ค.
21+ """
22+ slow , fast = head , head
23+
24+ while fast and fast .next :
25+ slow = slow .next
26+ fast = fast .next .next
27+
28+ mid = slow .next
29+ slow .next = None
30+
31+ prev , cur = None , mid
32+
33+ while cur :
34+ next_temp = cur .next
35+ cur .next = prev
36+ prev = cur
37+ cur = next_temp
38+
39+ first , second = head , prev
40+
41+ while second :
42+ first_next , second_next = first .next , second .next
43+ first .next = second
44+ second .next = first_next
45+ first , second = first_next , second_next
You canโt perform that action at this time.
0 commit comments