DEV Community

Cover image for Leetcode Daily Challenge - Swap Nodes In Pairs
Mohammad Alim
Mohammad Alim

Posted on • Updated on

Leetcode Daily Challenge - Swap Nodes In Pairs

Today's challenge on Leetcode in based on Linked List. Although it is listed in Medium difficulty level, it is one of the easiest linked list questions asked in interviews.

[24. Swap Nodes in Pairs]

(https://leetcode.com/problems/swap-nodes-in-pairs/)

The questions states:

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.)

Approach

Long story short, it asks you to swap the nodes occurring at even positions with their preceding node. Reading this line, you must have already got the inner intuition if you have already practiced Linked List questions in the past.

Illustrated Example

The solution took me 15 minutes and No, it does not consist of any swapping the actual nodes or altering them. Instead, the better approach is to switch the values of pair nodes which boils down to the basic swapping without third variable. Node swapping will also lead you to the finish line.

Solution:

class Solution(object):
    def swapPairs(self, head):
        if head == None or head.next == None:
            return head

        cur = head
        temp = cur
        cur = cur.next

        ctr = 1
        while cur:
            if ctr % 2 == 1:
                temp.val = temp.val + cur.val
                cur.val = temp.val - cur.val
                temp.val = temp.val - cur.val
            temp = cur
            cur = cur.next
            ctr += 1
        return head
Enter fullscreen mode Exit fullscreen mode

Hope you liked the article, in case you want to learn the fundamentals. Do checkout this YouTube Playlist. Code Broski - Mastering Python Fundamentals

Discussion (0)