删除单链表偶数节点

news2025/1/19 14:14:30

本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下:

struct ListNode { int data; struct ListNode *next; };

函数接口定义:

struct ListNode *createlist(); struct ListNode *deleteeven( struct ListNode *head ); 

函数createlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返回指向单链表头结点的指针。

函数deleteeven将单链表head中偶数值的结点删除,返回结果链表的头指针。

 

void push_back(struct ListNode** ppList, int x)
{
    //assert(ppList != NULL);
    struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
    newNode->data = x;
    newNode->next = NULL;
    
    if (*ppList == NULL)
    {
        *ppList = newNode;
        return;
    }

    struct ListNode* end = *ppList;
    
    while (end->next != NULL)
    {
        end = end->next;
    }
    
    end->next = newNode;
}

struct ListNode* createlist()
{
    struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
    int ret = 0;
    scanf("%d", &ret);
    if (ret != -1)
    {
        head->data = ret;
        head->next = NULL;
    }
    else
    {
        free(head);
        return NULL;
    }
    
    while (1)
    {
        scanf("%d", &ret);
        if (ret == -1)
        {
            break;
        }
        
        push_back(&head, ret);
    }

    return head;
}

struct ListNode* deleteeven(struct ListNode* head)
{
    struct ListNode* prev = head;
    struct ListNode* cur = head;
    
    while (cur != NULL)
    {
        if (cur->data % 2 == 1)
        {
            prev = cur;
            cur = cur->next;
            continue;
        }
        
        if (prev == cur)
        {
            cur = cur->next;
            free(prev);
            prev = cur;
            head = cur;
            continue;
        }
        
        prev->next = cur->next;
        free(cur);
        cur = prev->next;
    }

    return head;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cookies 设置过期时间

1.如何在浏览器中查看cookie过期时间 F12-Application-Cookies可以查看到网页所有设置cookie值, 如果设置了过期时间的cookie是可以看到过期时间的持久cookie(persistent cookie), 没有设置过期时间的是会话cookie(s…

Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…

Linux ubuntu磁盘扩容

1.服务器添加硬盘 2.linux系统重启 reboot 3.查看分区大小 lsblk 4.分配空间 growpart /dev/sda 3 lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

SpringBoot+Vue 的留守儿童系统的研究与实现,2.0 版本,附数据库、教程

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1.研究背景2. 技术栈3.系统分析4系统设计5系统的详细设计与实现5.1系统功能模块5.2管理员功能模块…

想考PMP,符合报名条件么?怎么报考?

报考PMP第一步就是了解报名条件: PMP考试如何报名? 先在PMI官网报英文报名,再在人才交流基金会上报中文报名以及缴费。 1、英文报名 PMP英文报名就是在PMI网站上提交对应的英文材料信息。不限时间,随时可以报名,报…

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码 1 比赛时间 北京时间:2023年9月7日 18:00-2023年9月10日20:00 2 思路内容 可以参考我提供的历史竞赛信息内容,最新更新我会发布在博客和知乎上,请关注我获得最…

原生js之dom与setInterval/settimeout结合实现动画

动画效果如何实现 那么好,这次我们要讲解的就是利用dom事件和定时方法来实现一个简单的动画效果. 实现这个效果,一共分为三个步骤: 1.实现效果 2.实现点击切换位置 3.实现动画效果 样式 两个div,一个父div,一个子div,用positionrelativeabsolute定位实现左上角效果,两个按钮…

企业如何制定实施MES管理系统的预算方案

随着制造业的不断发展,MES生产管理系统逐渐成为制造企业提高生产效率、优化资源利用和提升质量水平的重要工具。制定实施MES管理系统的预算方案是企业在进行MES选型和实施时必须考虑的问题。本文将介绍制定实施MES管理系统预算方案的关键步骤,包括成本构…

数据结构与算法(六)树的入门

树的基本定义 树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。 树是由n(n>1)个有限结点组成一个具有层次关系的集合。把它叫做“…

wifi感知技术

前段时间,看到一些短视频,说通过家里的路由器可以远程感知到房间里是否有人。抱着将信将疑的态度,对这门技术进行了探索。 在我的意识里面,传感器一般都是专门的设备,无论是声光电的转换,还是压力&#xf…

LLM - 大模型速递 Baichuan2 快速入门

目录 一.引言 二.模型探索 1.模型下载 2.模型结构 ◆ Baichuan-1-13B 结构 ◆ Baichuan-2-13B 结构 3.模型测试 ◆ Baichuan-2-13B Chat 推理 ◆ Baichuan-2-13B 显存 4.模型量化 ◆ 在线量化 ◆ 离线量化 ◆ 量化效果 5.模型迁移 三.总结 一.引言 昨天百川新…

Vue2面试题100问

Vue2面试题100问 Vue2面试题100问1.简述一下你对Vue的理解2.声明式和命令式编程概念的理解3.Vue 有哪些基本特征4.vue之防止页面加载时看到花括号解决方案有哪几种?5.Vue中v-for与v-if能否一起使用?6.vue中v-if与v-show的区别以及使用场景7.v-on可以监听…

模板多多的BI系统,绝不在可视化大屏制作上多花一秒

如果要花大量时间去调整UI,哪还有时间做分析?别急,奥威BI系统上模板多得是,绝不会让你在可视化大屏UI设置上多花一秒。众所周知,在奥威BI系统上,零基础的人也能一键下载UI模板,自动套用。 奥威…

入门深度学习你不得不关注的小知识:什么是HuggingFace?

入门深度学习你不得不关注的小知识:什么是HuggingFace? 文章目录 入门深度学习你不得不关注的小知识:什么是HuggingFace?来自何方?核心在线平台HuggingFace Spaces社区总结 HuggingFace 是一个专注于自然语言处理&…

基于Python开发的飞机大战小游戏彩色版(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的飞机大战小游戏,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,…

ESP32下的ble数据notify收发(支持ESP-IDF4.4\ESPIDF5.1)

ESP32下的ble数据notify收发 绪论实现效果ESP32接收ESP32 notify 发送 工程建工程增加属性表特征UUID定义属性声明(枚举)变量值声明数据接收数据发送 实验结果程序demo主程序代码声明 绪论 实现效果 gatt_server_service_table为模板,实现ESP32-S3与手机端蓝牙调试…

Talk | ICCV‘23南洋理工大学博士后李祥泰:面向统一高效的视频分割方法设计

本期为TechBeat人工智能社区第528期线上Talk! 北京时间9月6日(周三)20:00,南洋理工大学博士后研究员—李祥泰的Talk已准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “面向统一高效的视频分割方法设计”,他分享了其在视…

外滩大会今日开幕 近20位“两院”院士、诺贝尔奖和图灵奖得主齐聚

2023 Inclusion外滩大会9月7日在上海黄浦世博园正式开幕。这场以“科技创造可持续未来”为主题的大会为期三天,近20位“两院”院士、诺贝尔奖和图灵奖得主,全球超500位有影响力的科技领军企业和专家学者,将在此带来一场科技、人文和产业的思想…

机器学习笔记:轨迹驻留点 staypoint

1 定义 在轨迹数据分析中,"停留点"(Staypoint)是一个非常关键的概念,它反映了个体或物体在某一地点的停留行为。通常,在一段时间内,如果一个人或物体在一个较小的地理区域内的移动距离低于某个阈…

成都优优聚专业美团代运营团队!

成都优优聚是一家专业从事美团代运营的公司,为餐饮商家提供全方位的代运营服务。总部位于成都市,拥有一支经验丰富、专业的团队。 作为一家专注于美团代运营的公司,成都优优聚致力于帮助商家提升在美团平台上的曝光率,提高订单量和…