ReverseLinkedList
Published at 2021-11-19
# 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]:
# 방법 1 -> 얘가 더 빠르넴
new = None
while head:
temp = head.next # 뒷부분 일단 빼놔
head.next = new # 헤드 다음꺼를 거꾸로 정렬한 애로 바꿔
new = head # 거꾸로정렬 리스트에 젤 앞에꺼 추가
head = temp # 헤드를 다시 잠깐빼놓은(맨앞은 빠진)애로
return new
# 방법2 재귀
# def reverse(head, prev):
# if not head: return prev
# temp = head.next
# head.next = prev
# return reverse(temp, head)
# return reverse(head, None)