链表删除之后没有输出应该怎么改

#include <stdio.h>
#include <stdlib.h>

typedef struct Node{

int data;

struct Node* pre;/////////////////

struct Node* next;//////////////////

}Node;



Node* init(){////////////////////////无参数

Node* node=(Node*)malloc(sizeof(Node));

node->data=0;

node->pre=NULL;

node->next=NULL;

return node;

}



void addfirst(Node* list,int data){


Node* node=(Node*)malloc(sizeof(Node));

node->data=data;

if(list->data==0){

 node->pre=list;

 node->next=list->next;

 list->next=node;

}


else{

    node->pre=list;

    node->next=list->next;

    list->next->pre=node;

    list->next=node;


}

//list->data++;??????????????????????????

}



void addlast(Node* l,int data){

Node* list=l;////////////

Node* node = (Node*)malloc(sizeof(Node));

node->data=data;

list=list->next;

while(list->next){//////////////////////////

    list=list->next;

}

node->next=list->next;

node->pre=list;

list->next=node;



}


void delete(Node* p,int data){

Node* node=p->next;////////////////

while(node){

    if(node->data==data){

        node->pre->next=node->next;////////////////////////


        node->next->pre=node->pre;


        free(node);

        break;

    }

    node=node->next;

}





}


void loop(Node* list){

    Node* l=list->next;//////////////////

while(l){///////////////////


    printf("%d->",l->data);/////////////////////

    l=l->next;
}

}


int main()
{
    Node* node=init();

    addfirst(node,3);

    addfirst(node,2);

    addfirst(node,1);

    addlast(node,4);

    delete(node,4);

    loop(node);

    return 0;
}

引用 皆我百晓生 小程序回复内容作答:
如果删除节点之后不想输出链表,可以在delete函数中将输出代码注释掉,或者删除loop函数的调用,例如:

void delete(Node* p,int data){
    Node* node=p->next;
    while(node){
        if(node->data==data){
            node->pre->next=node->next;
            node->next->pre=node->pre;
            free(node);
            break;
        }
        node=node->next;
    }
}

或者将main函数中的loop函数调用删除,如下:

int main()
{
    Node* node=init();
    addfirst(node,3);
    addfirst(node,2);
    addfirst(node,1);
    addlast(node,4);
    delete(node,4);
    // loop(node);
    return 0;
}

【以下回答由 GPT 生成】

我希望从这段代码中得到链表删除元素后的结果。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^