diff --git a/work/1/Easy/Linked List/206.reverse-linked-list.py b/work/1/Easy/Linked List/206.reverse-linked-list.py new file mode 100644 index 0000000..e4be3dd --- /dev/null +++ b/work/1/Easy/Linked List/206.reverse-linked-list.py @@ -0,0 +1,57 @@ +""" +206. Reverse Linked List +Difficulty: Easy +https://leetcode.com/problems/reverse-linked-list/ + +────────────────────────────────────────────────── + +Given the head of a singly linked list, reverse the list, and return +the reversed list. + + + +Example 1: + +Input: head = [1,2,3,4,5] +Output: [5,4,3,2,1] + +Example 2: + +Input: head = [1,2] +Output: [2,1] + +Example 3: + +Input: head = [] +Output: [] + + + +Constraints: + + • The number of nodes in the list is the range [0, 5000]. + + • -5000 <= Node.val <= 5000 + + + +Follow up: A linked list can be reversed either iteratively or +recursively. Could you implement both? +""" + + +# 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]: + prev = None + curr = head + while curr: + next_ = curr.next + curr.next = prev + prev = curr + curr = next_ + return prev