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

输入若干个正整数(输入-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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料