Reficul33 2018-12-19 20:57 采纳率: 75%
浏览 11775
已采纳

输入若干个正整数(输入-1为结束标志),建立一个单向链表,将其中的偶数值结点删除后输出。

编程实现:输入若干个正整数(输入-1为结束标志),建立一个单向链表,将其中的偶数值结点删除后输出。链表节点定义为: struct Node{ int data; struct Node *next; }

输入输出示例:括号内为说明

输入样例:
1 2 3 4 5 6 7 -1
输出样例:
1 3 5 7

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-12-19 13:44
    关注
    #include "stdio.h"
    #include "stdlib.h"
    
    typedef struct Node { int data; struct Node *next; } LList;
    
    int main()
    {
        LList * header = NULL;
        Node * p;
        while (true)
        {
            int input;
            scanf("%d", &input);
            if (input == -1) break;
            if (!header)
            {
                header = (Node *)malloc(sizeof(Node));
                p = header;
                header->data = input;
                header->next = NULL;
            }
            else
            {
                p->next = (Node *)malloc(sizeof(Node));
                p = p->next;
                p->data = input;
                p->next = NULL;
            }
        }
        p = header;
        Node * preP = NULL;
        while (p)
        {
            if (p->data % 2 == 0)
            {
                Node * temp;
                if (!preP)
                {
                    temp = header;
                    header = header->next;
                    p = header;
                    free(temp);
                }
                else
                {
                    temp = p;
                    p = p->next;
                    preP->next = p;
                    free(temp);
                }
            }
            preP = p;
            p = p->next;
        }
        p = header;
        int i = 0;
        while (p)
        {
            printf("%d ", p->data);
            p = p->next;
        }
        printf("\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵