我很难弄清楚为什么我的删除功能不起作用。它是一个布尔值,如果删除了项目,则需要返回。任何帮助将不胜感激
boolean delete(SLL *list, String str){
NODE *current, *previous,*temp;
temp=malloc(sizeof(Employee));
previous=NULL;
current = list -> head;
while(current->next!=NULL) {
if(strcmp(current->anEmployee->name, str) == 0){
if(current=list->head){
list->head=current->next;
}
if(previous->next == NULL){//item not found in list
return 0;
}
else { //current is to be deleted
temp->next=current->next;
previous->next=temp->next;
return 1;
}
}
}
将当前与列表>head(最初是列表的根节点)进行比较的if语句是将节点分配给当前节点,而不是比较它。
在编写代码之前,您需要了解在删除链表中的节点时应处理的各种情况。以下内容可能会对您有所帮助。
-
从链表中删除节点
-
删除链表中具有特定值的所有节点