题解 | 牛牛的双链表求和
牛牛的双链表求和
https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <stdio.h> #include <stdlib.h> // write your code here...... typedef struct Node { int data; struct Node* next; }Node; //将数组转化为链表 Node* creatlist(int* arr, int n) { Node* head = NULL; Node* tail = NULL; if(n==0) { return NULL; } for(int i=0;i<n;i++) { Node* newnode = (Node*)malloc(sizeof(Node)); newnode->data=arr[i]; newnode->next=NULL; if(head==NULL) { head=newnode; tail=newnode; }else { tail->next=newnode; tail = newnode; } } return head; } int main() { int n; scanf("%d",&n); int* a=(int*)malloc(n*sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d",&a[i]); } int* b=(int*)malloc(n*sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d",&b[i]); } // write your code here...... Node* head_a = creatlist(a, n); Node* head_b = creatlist(b, n); int* c=(int*)malloc(n*sizeof(int)); Node* currenta= head_a; Node* currentb= head_b; for(int j=0;j<n;j++) { c[j]=currenta->data+currentb->data; currenta=currenta->next; currentb=currentb->next; } for(int j=0;j<n;j++) { printf("%d ",c[j]); } free(a); free(b); return 0; }
主要考点:1. 如何将数组转化为链表;2. 用数组去接收链表的data;c=a+b
#链表##笔试#