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 classclass Node: # Constructor to initialize the # node object def __init__(self, data): self.data = data self.next = Noneclass 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 codellist = 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 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



