写一个c语言设计算法复制单链表A的内容到一个新的链表B中
时间: 2023-04-01 12:03:22 浏览: 201
好的,这是一个关于C语言算法的问题。可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 复制单链表A到B
Node* copyList(Node* A) {
if (A == NULL) {
return NULL;
}
Node* B = (Node*)malloc(sizeof(Node));
B->data = A->data;
B->next = copyList(A->next);
return B;
}
int main() {
// 创建链表A
Node* A = (Node*)malloc(sizeof(Node));
A->data = 1;
A->next = (Node*)malloc(sizeof(Node));
A->next->data = 2;
A->next->next = NULL;
// 复制链表A到B
Node* B = copyList(A);
// 打印链表B
while (B != NULL) {
printf("%d ", B->data);
B = B->next;
}
printf("\n");
return ;
}
```
这个算法使用递归的方式复制单链表A到B,每次递归都创建一个新的节点,并将A节点的数据复制到B节点中。最后返回B节点的指针。
阅读全文