编程实战:输入正整数 n 构建链表并删除奇数值结点
以下是 `create` 函数和 `delete` 函数的实现代码: ```c // 创建链表的函数 node* create() { node *head = NULL, *tail = NULL, *newNode; int num; scanf("%d", &num); while (num!= -1) { newNode = (node*)malloc(sizeof(node)); newNode->data = num; newNode->next = NULL; if (head == NULL) { head = newNode; tail = newNode; } else { tail->next = newNode; tail = newNode; } scanf("%d", &num); } return head; } // 删除奇数节点的函数 node* delete(node* head) { node *prev = NULL, *cur = head; while (cur!= NULL) { if (cur->data % 2!= 0) { // 如果是奇数 if (prev == NULL) { // 如果是头节点 head = cur->next; free(cur); cur = head; } else { // 如果不是头节点 prev->next = cur->next; free(cur); cur = prev->next; } } else { // 如果是偶数 prev = cur; cur = cur->next; } } if (head == NULL) { // 检查删除后链表是否为空 printf("null\n"); } else { cur = head; while (cur!= NULL) { printf("%d ", cur->data); cur = cur->next; } printf("\n"); } return head; } ``` 额外需要注意的逻辑点: 1. 在内存分配和释放时,要确保没有内存泄漏。 2. 处理链表的遍历和节点删除时,要正确维护指针的指向,避免出现悬空指针或访问非法内存。 3. 对于输入的整数要进行有效范围的检查,确保符合题目要求。 ######[AI写代码神器 | 485点数解答 | 2024-11-23 14:50:39]
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)260
- Java 实现仿 Windows 资源管理器:文件管理器功能全解析与代码示例(字节豆包 | 623点数解答 | 2025-01-01 14:59:04)247
- 基于逻辑回归的乳腺癌数据分类预测:分析威斯康星乳腺肿瘤数据集(阿里通义 | 889点数解答 | 2025-06-19 12:02:10)198
- 新员工7月业绩冲刺计划书:15天填补28000元缺口,附Word转换指南!(DeepSeek | 233点数解答 | 2025-07-16 18:48:05)110
- 新员工业绩达标计划书:完善方案待店长审批,多维度优化冲刺7月目标!(字节豆包 | 500点数解答 | 2025-07-16 18:50:16)98
- C++实现最短编辑距离计算:将一个单词转换为另一个的最少操作数揭秘(字节豆包 | 311点数解答 | 2025-11-12 14:55:49)52
- Linux 系统用户、组及文件操作全流程实践(字节豆包 | 1142点数解答 | 2026-03-20 17:29:38)5
- 苍溪县:版权赋能驱动县域高质量振兴发展(字节豆包 | 742点数解答 | 2026-03-12 16:34:22)20
- Python 编程:开启无限可能的编程之旅!(阿里通义 | 19点数解答 | 2023-12-07 16:15:34)332
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)534
- 边长为3、4、5的三角形面积求解:用海伦公式算出结果为6! (字节豆包 | 155点数解答 | 2024-10-15 16:41:01)396
- C++实现含权限保护的二级文件系统:从设计到代码全解析 (阿里通义 | 1602点数解答 | 2024-10-28 14:42:23)272