输入格式:

第一行为链表长度n;

第二行为链表中的n个数据元素的值;

第三行为需要删除的元素值。

输出格式:

输出为删除后的链表中的所有数据元素的值。

输入样例:

4

45 12 34 8

34

输出样例:

45 12 8

#include <stdio.h>
#include <malloc.h>
typedef struct node
{
    int date;
    struct node *next;
}NODE;
NODE *create()
{
    int a;
    int n;
    NODE *head;
    NODE *p;
    NODE *q;
    head = (NODE*)malloc(sizeof(NODE));
    q = head;
    
    scanf("%d",&n);
    if(n > 0)
    {
        
        while(n > 0)
        {
            scanf("%d",&a);
            p = (NODE*)malloc(sizeof(NODE));
            p -> date = a;
            q -> next = p;
            q = p;
            n--;
        }
    }
    q -> next = NULL;
    return(head);
   
}
void delete1(NODE*head,int x)
{
    NODE *p;
    NODE *q;
    q = head;
    p = q -> next;
    while((p != NULL) && (p -> date != x) )
    {
        q = p;
        p = p -> next;
    }
    if(p != NULL)
    {
        q -> next = p -> next;
        free(p);
    }
}
int main()
{
    int x;
   
    NODE *a;
    NODE *b;
   
    a = create();
   
    scanf("%5d",&x);
   
    delete1(a,x);
    b = a;
    b = b->next;
  
    while(b != NULL)
    {
        printf("%d ",b->date);
        b = b->next;
    }
    printf("\n");
    return 0;
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐