题解 | #牛牛的链表删除#

牛牛的链表删除

https://www.nowcoder.com/practice/d3df844baa8a4c139e103ca1b1faae0f

//数据结构 删除结点(+尾插法)


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

typedef struct LNode{
    int data;                    //存放元素值
    struct LNode *next;          //指向后继节点
}LNode,*Linklist;

//尾插法 
Linklist Creat_list(int count){
    Linklist head = (Linklist)malloc(sizeof(LNode));        //定义头指针
    Linklist node=NULL;                                    //定义工作指针
    Linklist end=NULL;                                    //定义尾指针
    head->next = NULL;
    end=head;
//    int count,m;
    int data;                                            //存放当前结点数据
//    scanf("%d",&count);                                    //存放数组长度
//    scanf("%d",&m);                                    //存放要删除的元素
    for(int i=0;i<count;i++){
        scanf("%d",&data);
//        if(data!=m){
        node = (LNode*)malloc(sizeof(LNode));
        node->data = data;                        //存放结点数据域
        end->next = node;                            //将新结点尾插到链表
        end = node;                                //更新尾结点
//        }
    }
    end->next = NULL;
    return head;
}

//删除结点
void del(LNode *L,int m){
    LNode *p=L,*q=L->next;
    while(q){
        if(q->data == m){
            p->next=q->next;
            free(q);
            q=p->next;
        }
        else{
            p=q; q=q->next;
        }
    }
}

void output(Linklist head){
    Linklist a = head->next;
    while(a){
        printf("%d",a->data);
        printf(" ");
        a=a->next;
    }
    
}

int main(){
    int n,m;
    scanf("%d",&n);
    scanf("%d",&m);
    Linklist head=Creat_list(n);
    del(head,m);
    output(head);
}

全部评论

相关推荐

码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务