题解 | #牛牛的双链表求和#
牛牛的双链表求和
https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <math.h> #include <stdio.h> #include <stdlib.h> #define _CRT_SECURE_NO_WARNINGS typedef struct num { struct num* front; int a; struct num* next; }num, * pnum; void double_link_creat(pnum* phead, pnum pnew) { pnum pmov = *phead; if (*phead == NULL) { *phead = pnew; pnew->front = NULL; pnew->next = NULL; } else { while (pmov->next != NULL) { pmov = pmov->next; } pmov->next = pnew; pnew->front = pmov; pnew->next = NULL; } } void double_link_range(pnum phead) { pnum pmov = phead; while (pmov != 0) { printf("%d ", pmov->a); pmov = pmov->next; } } int main() { int n = 0; int i; scanf("%d", &n); int* a = (int*)calloc(n, sizeof(int)); int* b = (int*)calloc(n, sizeof(int)); pnum phead_a = NULL; pnum pnew_a = NULL; pnum phead_b = NULL; pnum pnew_b = NULL; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < n; i++) { scanf("%d", &b[i]); } for (i = 0; i < n; i++) { pnew_a = (pnum)malloc(sizeof(num)); pnew_a->a = a[i]; double_link_creat(&phead_a, pnew_a); pnew_b = (pnum)malloc(sizeof(num)); pnew_b->a = b[i]; pnew_b->a = pnew_a->a + pnew_b->a; double_link_creat(&phead_b, pnew_b); } double_link_range(phead_b); return 0; }