Published:
Updated:

  • Reference
  • ์žฌ๊ท€ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋” ๋А๋ฆผ
    • Runtime 42 ms
    • Beats 39.11%
  • ์‹œ๊ฐ„๋ณต์žก๋„: $O(N)$


Solution

# Definition for singly-linked list.
from typing import Optional


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


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

        # ํŒŒ์ด์ฌ์—์„œ ๋’ค์ง‘๋Š” ๊ฑด ๊ทธ๋ƒฅ ๋˜์ง€๋งŒ, ์ž๋ฐ”์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋’ค์ง‘์—ˆ์—ˆ์ง€!
        # next -> prev -> current
        while curr:
            tmp = curr.next
            curr.next = prev
            prev = curr
            curr = tmp

        return prev

        # ์žฌ๊ท€ ๋ฐฉ์‹
        # if not head:
        #     return None
        #
        # new_head = head
        # if head.next:
        #     new_head = self.reverseList(head.next)
        #     head.next.next = head
        # head.next = None
        #
        # return new_head

Leave a comment