题解 | #牛牛的双链表求和#
牛牛的双链表求和
https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <stdio.h> #include<stdlib.h> typedef struct SList { int date; struct SList* next; } SList; SList* CreatNode(int x) { SList* newNode = (SList*)malloc(sizeof(SList)); newNode->date = x; newNode->next = NULL; return newNode; } void TailPushBack(SList** phead, int* pa, int n) { int i = 0; while (i < n) { SList* newNode = CreatNode(pa[i++]); if (*phead == NULL) { *phead = newNode; } else { SList* pcur = *phead; while (pcur->next) { pcur = pcur->next; } pcur->next = newNode; } } } void PrintSList(SList* phead) { SList* pcur = phead; while (pcur) { printf("%d ", pcur->date); pcur = pcur->next; } } int main() { int n = 0; scanf("%d", &n); int* pa1 = (int*)malloc(n * sizeof(int)); int* pa2 = (int*)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d", pa1 + i); } for (int i = 0; i < n; i++) { scanf("%d", pa2 + i); } for (int i = 0; i < n; i++) { pa1[i] += pa2[i]; } SList* head1 = NULL; TailPushBack(&head1, pa1, n); PrintSList(head1); free(pa1); free(pa2); pa1=NULL; pa2=NULL; return 0; }