Write a C program to remove duplicates from a sorted linked list.
#include
#include "linkedlist.h"
#define LL_LIMIT 6
#define LL_DUP1 4
NODE* createLL()
{
int index=LL_LIMIT;
NODE* headNode = NULL;
while(index > 0)
{
headNode = addAtHead(headNode, index);
if (index == LL_DUP1)
{
headNode = addAtHead(headNode, index);
}
index--;
}
return headNode;
}
int removeDupNode(NODE* headNode)
{
NODE* dupNode;
if (headNode == NULL)
{
printf("List is Empty\n");
return 1;
}
while(headNode->next != NULL)
{
if(headNode->data == headNode->next->data)
{
printf("Duplicate data is %d\n", headNode->next->data);
dupNode = headNode->next;
headNode->next = dupNode->next;
free(dupNode);
}
headNode = headNode->next;
}
return 0;
}
int main()
{
NODE* headNode = NULL;
headNode = createLL();
displayAll(headNode);
if(!removeDupNode(headNode))
{
displayAll(headNode);
}
}
|
No comments:
Post a Comment