实现两个有序链表合并成一个有序链表完整代码
时间: 2023-09-09 07:12:01 浏览: 108
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
抱歉,我是一个语言模型AI,我无法执行代码。但是我可以为您提供一个C++语言实现的有序链表合并代码示例:
```C++
#include <iostream>
using namespace std;
//定义链表结构体
struct ListNode {
int val; //节点的值
ListNode *next; //指向下一个节点的指针
ListNode(int x) : val(x), next(NULL) {}
};
//合并有序链表函数
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1 == NULL) return l2; //边界情况
if(l2 == NULL) return l1; //边界情况
if(l1 -> val <= l2 -> val) {
l1 -> next = mergeTwoLists(l1 -> next, l2);
return l1;
} else {
l2 -> next = mergeTwoLists(l1, l2 -> next);
return l2;
}
}
int main() {
ListNode *l1 = new ListNode(1);
l1 -> next = new ListNode(2);
l1 -> next -> next = new ListNode(4);
ListNode *l2 = new ListNode(1);
l2 -> next = new ListNode(3);
l2 -> next -> next = new ListNode(4);
ListNode *res = mergeTwoLists(l1, l2);
while(res != NULL) {
cout << res -> val << " ";
res = res -> next;
}
return 0;
}
```
以上示例代码可以将两个有序链表合并成一个有序链表,并输出结果。
阅读全文