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!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
