Write a RemoveDuplicates() function which takes a list sorted in increasing order and deletes any duplicate nodes from the list. Ideally, the list should only be traversed once.
/*
* Remove duplicates from a sorted list
*/
void RemoveDuplicates(nodeptr head)
{
nodeptr current = head;
nodeptr tempnode;
while(current != NULL) {
if(current->next != NULL) {
if(current->data == current->next->data) {
tempnode = current->next;
current->next = tempnode->next;
free(tempnode);
}
}
current = current->next;
}
}
* Remove duplicates from a sorted list
*/
void RemoveDuplicates(nodeptr head)
{
nodeptr current = head;
nodeptr tempnode;
while(current != NULL) {
if(current->next != NULL) {
if(current->data == current->next->data) {
tempnode = current->next;
current->next = tempnode->next;
free(tempnode);
}
}
current = current->next;
}
}
No comments:
Post a Comment