diff --git a/linked_lists/reverse_linked_list_II.py b/linked_lists/reverse_linked_list_II.py new file mode 100644 index 0000000..667c3ce --- /dev/null +++ b/linked_lists/reverse_linked_list_II.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + +class Node: + def __init__(self, val=0, next): + self.val = val + self.next = next + + +def reverse_list(head: Optional[Node]) -> Optional[Node]: + + if head is None: + return head + + final_head = head + + while head.next: + + new_node = head.next + head.next = new_node.next + new_node.next = final_head + final_head = new_node + + return final_head +