Reverse Linked List - LeetCode
단방향 연결 리스트가 주어질 때, 해당 리스트를 뒤집어 반환하는 문제이다.
# Definition for singly-linked list.
# 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]:
if head==None:
return None
nxt = head.next
prv = None
head.next = prv
prv = head
while nxt != None:
head = nxt
nxt = nxt.next
head.next = prv
prv = head
return head
자세한 설명은 이 글에 작성했다.
순회하는 과정에서 O(n)이 걸린다.