알고리즘 공부를 다시 시작했다. 코테 준비도 할겸!
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
prev, node = None, head
while node:
prev, prev.next, node = node, prev, node.next
return prev
class Solution2:
def reverseList(self, head: ListNode) -> ListNode:
prev, node = None, head
while node:
next, node.next = node.next, prev
prev, node = node, next
return prev
Linked List 를 뒤집어주는 코드이다.
Python 의 다중 할당 기능을 이용했는데 뭔가 C++ 만 하다가 이런 걸 보니 신기하기도 하면서 헷갈리기도 한다.
1 -> 2 -> 3 과 같이 그림을 그리면서 이해하면 금방 이해 가능!
링크드 리스트 문제를 풀 때는 항상 그림을 그려서 직관적으로 이해하면서 문제를 풀면 큰 도움이 된다.