**

6-2 删除单链表偶数节点 (10 分)

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

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

函数接口定义:

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

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

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

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>struct ListNode {int data;struct ListNode *next;
};struct ListNode *createlist();
struct ListNode *deleteeven( struct ListNode *head );
void printlist( struct ListNode *head )
{struct ListNode *p = head;while (p) {printf("%d ", p->data);p = p->next;}printf("\n");
}int main()
{struct ListNode *head;head = createlist();head = deleteeven(head);printlist(head);return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

1 2 2 3 4 5 6 7 -1
//结尾无空行

输出样例:

1 3 5 7
//结尾无空行
struct ListNode *createlist(){struct ListNode *l,*p,*r;l=(struct ListNode *)malloc(sizeof(struct ListNode));l->next=NULL;int x;r=l;scanf("%d",&x);while(x!=-1){p=(struct ListNode *)malloc(sizeof(struct ListNode));p->data=x;r->next=p;r=p;scanf("%d",&x);}r->next=NULL;return l;
}struct ListNode *deleteeven( struct ListNode *head ){struct ListNode *p1;p1 = head;while (p1->next != NULL){if (p1->next->data%2==0){p1->next = p1->next->next;}else{p1 = p1->next;}//p1 = p1->next;     }head=head->next;return head;}

6-2 删除单链表偶数节点 (10 分)相关推荐

  1. PTA: 6-5 删除单链表偶数节点 (20 分)

    大一下半期数据结构 数据结构题目集 删除单链表偶数节点 本题要求实现两个函数,分别将读入的数据存储为单链表.将链表中偶数值的结点删除. 链表结点定义如下: struct ListNode {int d ...

  2. 用O(1)的时间复杂度删除单链表中的某个节点

    用O(1)的时间复杂度删除单链表中的某个节点 给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下: struct ListNode {int m_nKey;ListNode* ...

  3. 删除单链表中的重复节点(c语言版本)

    这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...

  4. 链表之删除单链表倒数第K个节点

    删除单链表倒数第K个节点 题目: 删除单链表中倒数第K个节点, 思路:             给我们一个单链表,我们需要删除倒数第K个节点,比如链表每个节点值是1.2.3.4.5.6     K值是 ...

  5. python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点

    题目 实现一个函数,一个可以删除单链表中倒数第k个节点 难度 简单 分析 本题比较简单,实现方法多种多样,这里提供一种方法 首先明确一点,在单链表中删除倒数第k个节点,需要找到他的前一个节点,让前一个 ...

  6. 删除链表的中间节点 Java实现_【链表问题】删除单链表的中间节点

    前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获.每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢. [题目描述] 给定链表的头节点head ...

  7. 删除单链表中的重复节点

    删除单链表中的重复节点 一.题目描述 已知单链表L,写一算法,删除其中的重复节点.(更好的阅读体验,请访问程序员在旅途) 二.分析解答 2.1 知识点分析 本题主要考察链表的相关知识点,其中包括:单链 ...

  8. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点

    /*实验2 1. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点 (low和high的值是多少可自由设计).并且要在程序中验证其功能实现. (可在实验1的第3题的基 ...

  9. 删除单链表中倒是第K个结点

    [问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行输入若干个整数建立带头结点的单链表(以输入字符作为结束). 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式 ...

最新文章

  1. xgboost重要参数2为主但不全要参照1
  2. Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法
  3. 计算图上的微积分:Backpropagation 微积分 SOTON数据分析 · 2015-09-06 08:52 [译] 计算图上的微积分:Backpropagation 引言 Backprop
  4. 2016 Multi-University Training Contest 3
  5. java函数式编程之接口Default方法五
  6. 如何将namedtuples序列化为JSON
  7. python寻找list中最大值、最小值并返回其所在位置
  8. 2014上海全国邀请赛 解题报告
  9. 最短路径系列【最短路径、哈密顿路等】
  10. Excel提示:您的组织策略阻止我们为您完成此操作
  11. w10恢复出厂设置_笔记本电脑w10怎么恢复出厂设置
  12. github网络安全项目工具集合
  13. MySQL使用JDBC高级操作和事务
  14. 计算机读光盘出现乱码,解决刻录音乐光盘mp3出现中文乱码的方法
  15. 获取微信昵称时 过滤特殊字符
  16. 海量文件、超大文件,如何实现高速传输?
  17. 【html+css+js】用前端做一个视频播放器页面
  18. eclipse中遇到的问题(2)
  19. okio篇3-超时机制
  20. 【网课平台】Day16.项目优化:压测、加缓存优化与分布式锁

热门文章

  1. 软考信息安全工程师备考笔记8:第八章应用系统安全工程备考要点
  2. 返回值 包装类_(九)Java常用类
  3. HTML---文本样式---行高---字符间距---文本对齐方式---文本使用线条修饰---文本的大小写---处理元素内的空白---字体样式---无序列表有序列表---表格
  4. python基础面试题1
  5. JavaHelp 开发系统帮助(二)
  6. 对于整数数组类的算法的终极解决方案
  7. 调用Interop.zkemkeeper.dll无法使用解决方案
  8. web开发中不同设备浏览器的区分
  9. CodeIgniter URL添加后缀
  10. agile/scrum 如果一切都从解放前开始