Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Write a function deleteAtPositionN() for a singly-linked list that has the fo

ID: 3886747 • Letter: 1

Question

1. Write a function deleteAtPositionN() for a singly-linked list that has the following declaration and precondition: int deleteAtPositionN (struct node **pHead, int n, int *pData); Precondition: n > 0. The function should find the node at position n, and delete it. The data should be returned indirectly through pData, then the node must be released back to the heap. The first node in the list starts at position 1. The function should return 1 if a node was deleted; 0 otherwise. Assume that struct node is defined as follows: struct node { int data; struct node *pNext; };

Explanation / Answer

// Precondition: n > 0 int deleteAtPositionN(struct node **pHead, int n, int *pData) { int i=0; struct node *traverse = NULL, *prev = NULL; if(*pHead) { traverse = *pHead; } else { return 0; } while(pHead && (i pNext; i++; } prev->pNext = traverse->pNext; free(traverse); return 1; }