题解 | 牛牛的双链表求和
牛牛的双链表求和
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
#链表##笔试#
查看12道真题和解析