效率较高:
void listRemoveValue(LinearList * list,LinearListNodeValue value){
if (list == NULL) return;
//定义一个初始值记录需要删除的个数
int removeCount = 0;
//遍历所有元素
for (int i = 0 ; i < list->length; i++) {
if (list->values[i]==value) {//是需要删除的
//让删除的个数加1
removeCount++;
}else{//不删除就挪动
list->values[i - removeCount] = list->values[i];
}
}
//最后将长度减去删除的个数
list->length -= removeCount;
}
效率较低:
void listRemoveValue(LinearList * list,LinearListNodeValue value){
if (list == NULL) return;
//遍历所有元素
for (int i = 0 ; i < list->length; i++) {
while (list->values[i] == value && i< list->length) {//是需要删除的!!
//干掉当前的数据
listRemove(list, i);
list->length--;
}
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。