我正在编写一个删除具有重复数据的连续项目的函数。eg 例如,传入列表
->a->b->c->c->a->b->b->b->a->null
应该导致
->a->b->c->a->b->a->null
列表项定义和函数声明如下
struct litem {
char data;
litem* next;
};
Mo代码看起来像
int remove_dumplicates(litem *&list)
{
int count = 0;
struct litem * current = NULL;
current = list;
struct litem *deleteNode;
if (current == NULL ) return;
while(current->next != NULL)
{
if ( current->data == current->next->data) // check for the duplicates
{
count++;
deleteNode =current->next;
current>next= current->next->next;
delete deleteNode;
}
return (count);
}
}
这是实现预期结果的正确方法吗?