diff --git a/linked_lists/swap_every_two_nodes.py b/linked_lists/swap_every_two_nodes.py new file mode 100644 index 0000000..999bbac --- /dev/null +++ b/linked_lists/swap_every_two_nodes.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + + +class ListNode: + def __init__(self, val=0, next=None): + self.val = val + self.next = next + + +def swap_pairs(head: Optional[ListNode]) -> Optional[ListNode]: + if not head or not head.next: + return head + + ## nodes to be swapped + first_node = head + second_node = head.next + + # swapping + first_node.next = swap_pairs(second_node.next) + second_node.next = first_node + + return second_node