Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 1014 Bytes

24_swap_nodes_in_pairs.md

File metadata and controls

43 lines (35 loc) · 1014 Bytes

Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.)

Example 1:

Input: head = [1,2,3,4]
Output: [2,1,4,3]

Example 2:

Input: head = []
Output: []

Example 3:

Input: head = [1]
Output: [1]

Solution

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
        
class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        if head is None or head.next is None:
            return head

        rem_head = head.next.next
        new_head = head.next
        new_head.next = head
        head.next = self.swapPairs(rem_head)
        
        return new_head