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' next pointers. 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; }
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' next pointers.
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;
}
![](/static/compass_v2/shared-icons/check-mark.png)
Step by step
Solved in 2 steps with 4 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Computer Networking: A Top-Down Approach (7th Edi…](https://www.bartleby.com/isbn_cover_images/9780133594140/9780133594140_smallCoverImage.gif)
![Computer Organization and Design MIPS Edition, Fi…](https://www.bartleby.com/isbn_cover_images/9780124077263/9780124077263_smallCoverImage.gif)
![Network+ Guide to Networks (MindTap Course List)](https://www.bartleby.com/isbn_cover_images/9781337569330/9781337569330_smallCoverImage.gif)
![Computer Networking: A Top-Down Approach (7th Edi…](https://www.bartleby.com/isbn_cover_images/9780133594140/9780133594140_smallCoverImage.gif)
![Computer Organization and Design MIPS Edition, Fi…](https://www.bartleby.com/isbn_cover_images/9780124077263/9780124077263_smallCoverImage.gif)
![Network+ Guide to Networks (MindTap Course List)](https://www.bartleby.com/isbn_cover_images/9781337569330/9781337569330_smallCoverImage.gif)
![Concepts of Database Management](https://www.bartleby.com/isbn_cover_images/9781337093422/9781337093422_smallCoverImage.gif)
![Prelude to Programming](https://www.bartleby.com/isbn_cover_images/9780133750423/9780133750423_smallCoverImage.jpg)
![Sc Business Data Communications and Networking, T…](https://www.bartleby.com/isbn_cover_images/9781119368830/9781119368830_smallCoverImage.gif)