Node* linklist(Node* list1, Node* list2) 两个有序链表合并成一个有序链表c++语言
时间: 2024-09-09 13:17:38 浏览: 90
在C++中,`linklist(Node* list1, Node* list2)` 函数可以用来合并两个已排序的链表(Node* 类型),创建一个新的有序链表。这个过程通常涉及到遍历两个链表,将较小的节点依次添加到新链表中。下面是一个简单的示例函数实现:
```cpp
// 假设Node结构如下:
struct Node {
int data;
Node* next;
};
Node* linklist(Node* list1, Node* list2) {
// 创建一个空头节点作为合并后的链表起点
Node* mergedList = new Node();
Node* currentMerged = mergedList;
// 遍历链表直到有一个链表结束
while (list1 && list2) {
if (list1->data <= list2->data) { // 如果list1的元素小
currentMerged->next = list1; // 添加list1的节点
list1 = list1->next;
} else {
currentMerged->next = list2; // 否则添加list2的节点
list2 = list2->next;
}
currentMerged = currentMerged->next; // 移动到下一个位置准备添加下一个小节点
}
// 将剩余未遍历完的链表添加到结果链表
if (list1) {
currentMerged->next = list1;
} else {
currentMerged->next = list2;
}
return mergedList->next; // 返回合并后的新链表的头结点
}
```
阅读全文