Please implement this function:
void swap(int pos1, int pos2) {}.
There's an answer from the previous teacher but he added '' node** hRef " in the function (see below) please correct without the href.
- For LinkedList, to maintain integrity of data in the structure, you are not to swap directly the element, nor remove a node. Instead, you are to only change the nodes'nextpointers.
PLEASE CORRECT THIS ONE
void swap(node** hRef, int pos1, int pos2) {
if (pos1 == pos2)
return;
node *prevNode1 = NULL;
node* currNode1 = *hRef;
while (currNode1 && currNode1->index != pos1) {
prevNode1 = currNode1;
currNode1 = currNode1->next;
}
node *prevNode2 = NULL;
node *currNode2 = *hRef;
while (currNode2 && currNode2->index != pos2) {
prevNode2 = currNode2;
currNode2 = currNode2->next;
}
if (currNode1 == NULL || currNode2 == NULL)
return;
if (prevNode1 != NULL)
prevNode1->next = currNode2;
else
*hRef = currNode2;
if (prevNode2 != NULL)
prevNode2->next = currNode1;
else
*hRef = currNode1;
node* temp = currNode2->next;
currNode2->next = currNode1->next;
currNode1->next = temp;
}