先输入N个整数,按照输入的顺序建立链表。然后遍历并输出偶数位置上的结点信息。
第一行输入整数的个数N 1≤N≤100;第二行依次输入N个整数。
输出该链表偶数位置上的结点的信息。
输入
2
8
12 56 4 6 55 15 33 62
3
1 2 1
输出
56 6 15 62
2
c语言输出链表偶数结点
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-04-27 22:35关注
供参考:
#include <stdio.h> #include <malloc.h> typedef struct Node {// 链表节点结构 int data; struct Node* next; }Node, * LinkList; void destroyNodes(LinkList L) { Node *pL = NULL; while(L){ pL = L; L = pL->next; free(pL); } } void show(LinkList L)//输出单链表偶数位置结点信息 { if (L == NULL || L->next == NULL) return; int i = 0; Node* p = L->next; while (p) { if ((i+1) % 2 == 0) printf(i+1 == 2 ? "%d":" %d", p->data); i++; p = p->next; } printf("\n"); } // 创建链表 void createListFromHead(LinkList* L, int n) { Node* pL; int i; (*L) = (Node*)malloc(sizeof(Node));// 创建头结点 (*L)->data = -1; (*L)->next = NULL; pL = (*L); for (i = 0;i < n; i++) // 生成链表 { Node* p = (Node*)malloc(sizeof(Node)); p->next = NULL; scanf("%d", &p->data); pL->next = p; pL = p; } } int main() { int n, m; scanf("%d", &n); while (n--){ scanf("%d", &m); LinkList L = NULL; createListFromHead(&L, m); show(L); destroyNodes(L); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 1
悬赏问题
- ¥15 爬虫爬取网站的一些信息
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
- ¥15 麒麟V10桌面版SP1如何配置bonding
- ¥15 Marscode IDE 如何预览新建的 HTML 文件
- ¥15 K8S部署二进制集群过程中calico一直报错