【发布时间】:2010-10-22 13:41:18
【问题描述】:
我正在编写一个函数来删除具有重复数据的连续项目。 例如 比如传入列表
->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);
}
}
这是实现预期结果的正确方法吗?
【问题讨论】:
-
请先正确格式化您的代码。
-
return语句可能在while循环之外。而且,那里需要像current = current->next;这样的声明。 -
您是否测试过常见和边缘案例?
标签: c data-structures linked-list singly-linked-list