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

牛牛的链表删除

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

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

typedef int data_t;
typedef struct node
{
    data_t data;
    struct node *next;
}linknode,*linklist;

linklist list_create()
{
    linklist H = (linklist)malloc(sizeof(linknode));
    if(H == NULL)
    {
        printf("malloc is failed");
        return NULL;
    }
    H->data = 0;
    H->next = NULL;
    return H;
}

void list_insert(linklist H)
{
     linklist L = (linklist)malloc(sizeof(linknode));
     linklist h = H;
    if(L == NULL)
    {
        printf("malloc is failed");
        return ;
    }
    int value;
    scanf("%d",&value);
    L->data = value;
    L->next = NULL;
    while(h->next != NULL)
    h = h->next;

    h->next = L;
}

void list_show(linklist H)
{
    linklist h = H->next;
    while (h->next != NULL) {
    printf("%d ",h->data);
    h = h->next;
    }
    printf("%d ",h->data);
}

void list_delete(linklist H,int value)
{
linklist h = H;
linklist h1;
while (h->next != NULL) {
    if(h->next->data == value &&h->next->next!=NULL)
    {
        linklist h2 = h->next;
        h->next = h->next->next;
        free(h2);
    }
    h1 = h;
    h = h->next;
}
   if(h1->next->data == value)
   h1->next = NULL;
}


int main() {
    int i,n,m;
    linklist H = list_create();
    scanf("%d %d",&n,&m);
  for(i = 0;i<n;i++)
  list_insert(H);
 list_delete(H,m);
  list_show(H);
    return 0;
}

全部评论

相关推荐

昨天 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
搞机墨镜猫:生产实习放项目下面,简化一点,如果有更好的东西就可以直接替换掉,比如你说你拆过他们的伺服电机很了解结构,可以照着画一下写成项目 项目看看能不能再找一个课设之类的包装一下(别写减速器),两个项目比较好,把项目后面的三位建模几个字去掉(这样会觉得有实物)
机械人,你的秋招第一份简...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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