less than 1 minute read

206. Reverse Linked List

문제 링크

https://leetcode.com/problems/reverse-linked-list/description/

문제 설명

Given the head of a singly linked list, reverse the list, and return the reversed list.

제한 사항

  • The number of nodes in the list is the range [0, 5000].
  • -5000 <= Node.val <= 5000

입출력 예 #1

  1. Input: head = [1,2,3,4,5]
  2. Output: [5,4,3,2,1]

입출력 예 #2

  1. Input: head = [1,2]
  2. Output: [2,1]

입출력 예 #3

  1. Input: head = []
  2. Output: []

문제 풀이

반복하면서 두 Node를 뒤집기하는 방식으로 진행한다.

class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        node, prev = head, None

        while node :
            next, node.next = node.next, prev
            node, prev = next, node

        return prev

Comments