[LeetCode] 206. Reverse Linked List
풀이_#1 반복문
# 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]:
curr = head
if (not curr):
return None
before = None
while(curr):
temp = curr.next
curr.next = before
before = curr
curr = temp
return before
풀이_#2 재귀
# 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]:
def rec(node,before):
if (not node):
return before;
temp = node.next
node.next = before
return rec(temp, node)
return rec(head, None)