用c语言写出将两个顺序链表合并的操作
时间: 2024-10-06 15:05:12 浏览: 35
在 C 语言中,合并两个已排序的顺序链表可以分为以下几个步骤:
1. 定义结构体 `Node` 表示链表节点,包含整型数据 `data` 和指向下一个节点的指针 `next`。
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
2. 创建一个辅助函数 `mergeLists` 来合并两个链表。首先创建一个新的头节点 `newHead`,然后遍历两个链表:
```c
Node* mergeLists(Node* list1, Node* list2) {
// 如果其中一个链表为空,则返回另一个链表
if (!list1) return list2;
if (!list2) return list1;
// 比较两个链表的头部元素并决定新链表的头节点
if (list1->data <= list2->data) {
newHead = list1;
list1 = list1->next;
} else {
newHead = list2;
list2 = list2->next;
}
// 通过 `newHead->next` 更新新链表的头节点
newHead->next = mergeLists(list1, list2);
return newHead;
}
```
这个函数会递归地处理剩余的部分,直到两个链表都遍历完。最后,返回合并后的链表的头节点。
阅读全文