把一个单链表的数据按顺序保存到另一个单链表
时间: 2024-03-13 14:44:10 浏览: 24
首先,我们需要定义两个单链表的节点结构体,如下所示:
```c
struct ListNode {
int val;
struct ListNode *next;
};
```
然后,我们可以定义一个函数来将一个单链表的数据按顺序保存到另一个单链表中,具体实现如下:
```c
struct ListNode* copyList(struct ListNode* head) {
struct ListNode* newHead = NULL;
struct ListNode* newTail = NULL;
struct ListNode* p = head;
while (p != NULL) {
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = p->val;
newNode->next = NULL;
if (newHead == NULL) {
newHead = newNode;
newTail = newNode;
} else {
newTail->next = newNode;
newTail = newNode;
}
p = p->next;
}
return newHead;
}
```
这个函数首先定义了两个指针 newHead 和 newTail,它们分别指向新链表的头节点和尾节点。然后,定义了一个指针 p,它用来遍历原链表。在遍历的过程中,我们逐个复制原链表中的节点,并将它们依次插入到新链表中。具体实现的细节可以看代码注释。