-1

我很难弄清楚为什么我的删除功能不起作用。它是一个布尔值,如果项目被删除,则需要返回。任何帮助,将不胜感激

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;
        }
    }
}
4

2 回答 2

2

您将 current 与 list->head (最初是列表的根节点)进行比较的 if 语句是将节点分配给 current,而不是进行比较。

于 2012-04-13T20:03:59.667 回答
0

在编写代码之前,您需要了解在删除链表中的节点时应处理的各种情况。以下内容可能对您有所帮助。

  1. 从链表中删除节点

  2. 删除链表中具有特定值的所有节点

于 2012-04-13T20:04:16.313 回答