206๋ฒ ์ญ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
https://leetcode.com/problems/reverse-linked-list/
Reverse Linked List - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
ํ์ด 1 - ๋ฐฐ์ด์ ์ ์ฅํ์ฌ ๋ค์ง๊ธฐ
class Solution:
def reverseList( head: Optional[ListNode]) -> Optional[ListNode]:
arr = []
while head :
arr.append(head.val)
head = head.next
tmp = None
head = None
arr = arr[::-1]
for val in arr:
if not tmp:
tmp = ListNode(val)
head = tmp #์ฒซ๋ฒ์งธ ์ฃผ์ ์ ์ฅ
else:
tmp.next = ListNode(val)
tmp = tmp.next
return head
์์ง ํ์ด์ฌ์ linked list ๊ฐ๋ ์ด ์ด์ํด์ ๋ฆฌ์คํธ์ ์ ์ฅํด์ ๋ค์ง๊ณ ๋ค์ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฃ์ด์ฃผ์๋ค.
์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ฐ๋ ์ ์ด์ฉํด์ ํผ๊ฑด ์๋์ง๋ง ์๋๋ ํด๋น ํ์ด๊ฐ ์ข ๋ ๋น ๋ฅด๊ธดํ๋ค.
ํ์ด 2 - ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ ์งํ ์ํ์์ ์ญ์์ผ๋ก ์ฃผ์ ๋ณ๊ฒฝํด์ฃผ๊ธฐ
class Solution:
def reverseList( head: Optional[ListNode]) -> Optional[ListNode]:
node,prev = head,None
while node :
next = node.next #node์ ๋ค์ ์ฃผ์ ์์ ์ ์ฅํด๋๊ธฐ
node.next = prev #head ๊ธฐ์ค ๋ฐ๋๋ก ์ฃผ์ ์ ์ฅํ๊ธฐ
prev = node #ํ๋์ฉ ๋ค๋ก head์ด๋
node = next #๋ค์ ๋
ธ๋๋ก ์ด๋
return prev
์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ญ์์ผ๋ก ๋ค์ง๋ ๋ฌธ์ ๋ ๋งค์ฐ ์ผ๋ฐ์ ์ด๋ฉฐ, ํ์ฉ๋๊ฐ ๋์์ ์ธ์๋๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
๋์ ์ด ํท๊ฐ๋ฆฌ์ง๋ง node.next ๋ณ์๊ฐ ๋ค์ node ์ฃผ์๋ฅผ ์ ์ฅํ ํ์ฌ ๋ ธ๋๋ผ๋ ๊ฑธ ์ ์ธ์ํ๋ฉด ์ดํดํ๋๋ฐ๋ ํฌ๊ฒ ์ด๋ ต์ง์๋ค.
์ด์ฝ๐ฅ
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (Python) (1) | 2022.12.21 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (Python) (2) | 2022.11.24 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ์ง๊ฟ (Python) (0) | 2022.10.19 |
[๋ฐฑ์ค] 11055 - ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด (DP) (0) | 2022.10.12 |
์๊ณ ๋ฆฌ์ฆ ํค์๋ (0) | 2022.09.29 |
๋๊ธ