Sunday, November 17, 2024
Google search engine
HomeLanguagesPython Program For Pairwise Swapping Elements Of A Given Linked List

Python Program For Pairwise Swapping Elements Of A Given Linked List

Given a singly linked list, write a function to swap elements pairwise.

Input: 1->2->3->4->5->6->NULL 
Output: 2->1->4->3->6->5->NULL

Input: 1->2->3->4->5->NULL 
Output: 2->1->4->3->5->NULL

Input: 1->NULL 
Output: 1->NULL 

For example, if the linked list is 1->2->3->4->5 then the function should change it to 2->1->4->3->5, and if the linked list is then the function should change it to.

METHOD (Iterative): 
Start from the head node and traverse the list. While traversing swap data of each node with its next node’s data. 
Below is the implementation of the above approach: 

Python




# Python program to swap the elements of
# linked list pairwise
 
# Node class
class Node:
 
    # Constructor to initialize the
    # node object
    def __init__(self, data):
        self.data = data
        self.next = None
 
class LinkedList:
 
    # Function to initialize head
    def __init__(self):
        self.head = None
 
    # Function to pairwise swap elements
    # of a linked list
    def pairwiseSwap(self):
        temp = self.head
 
        # There are no nodes in a
        # linked list
        if temp is None:
            return
 
        # Traverse further only if there
        # are at least two left
        while(temp and temp.next):
 
            # If both nodes are same,
            # no need to swap data
            if(temp.data != temp.next.data):
 
                # Swap data of node with its
                # next node's data
                temp.data, temp.next.data = temp.next.data, temp.data
 
            # Move temp by 2 to the next pair
            temp = temp.next.next
 
    # Function to insert a new node at the
    # beginning
    def push(self, new_data):
        new_node = Node(new_data)
        new_node.next = self.head
        self.head = new_node
 
    # Utility function to print the linked
    # LinkedList
    def printList(self):
        temp = self.head
        while(temp):
            print temp.data,
            temp = temp.next
 
# Driver code
llist = LinkedList()
llist.push(5)
llist.push(4)
llist.push(3)
llist.push(2)
llist.push(1)
 
print "Linked list before calling pairWiseSwap() "
llist.printList()
 
llist.pairwiseSwap()
 
print "Linked list after calling pairWiseSwap()"
llist.printList()
 
# This code is contributed by Nikhil Kumar Singh(nickzuck_007)


Output:

Linked list before calling pairWiseSwap()
1 2 3 4 5 
Linked list after calling pairWiseSwap()
2 1 4 3 5 

Time complexity: O(n) 

Auxiliary Space: O(1)
Please refer complete article on Pairwise swap elements of a given linked list for more details!
 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments