Dada una lista enlazada individualmente, escriba una función para intercambiar elementos por pares.
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
Por ejemplo, si la lista enlazada es 1->2->3->4->5 entonces la función debería cambiarla a 2->1->4->3->5, y si la lista enlazada es entonces el la función debería cambiarlo a.
MÉTODO (Iterativo):
Comience desde el Node principal y recorra la lista. Al atravesar los datos de intercambio de cada Node con los datos de su siguiente Node.
A continuación se muestra la implementación del enfoque anterior:
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)
Producción:
Linked list before calling pairWiseSwap() 1 2 3 4 5 Linked list after calling pairWiseSwap() 2 1 4 3 5
Complejidad de tiempo: O(n)
Consulte el artículo completo sobre los elementos de intercambio por pares de una lista vinculada dada para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA