[leetcode] 역순 연결 리스트

김민서·2024년 1월 8일
0

알고리즘 문제풀이

목록 보기
20/47
  1. Reverse Linked List

연결 리스트의 head가 주어졌을 때, 리스트의 역순 연결 리스트를 반환하는 문제.

연결 리스트의 개념은 알고 있으나, 구현하기 쉽지 않았다.

class ListNode(object):
	def __init__(self, val=0, next=None):
    	self.val = val
        self.next = next

class Solution(object):
	def reverseList(self, head):
        prev = None
        while head:
        	next = head.next
            head.next = prev
            prev = head
            head = next
        return prev

코드 이해를 하기가 너무 어려웠다.

먼저 이전 노드를 저장할 prev를 선언해준다.
모든 헤드를 돈다:
현재 헤드의 다음으로 연결된 노드를 next에 저장한다.
헤드의 다음 연결 노드를 이전 노드로 설정한다.(처음엔 None으로 선언되어 있으니 None.)
현재의 헤드를 prev에 선언한다.
next를 헤드로 선언한다.

prev를 반환한다.(prev를 헤드로 선언했으니까)

이해를 하긴 했는데 다시 구현하라고 하면 못하겠다. 외우기라도 해야겠다.

0개의 댓글