实现两个有序链表合并成一个有序链表完整代码
时间: 2023-09-09 07:12:01 浏览: 102
两个有序链表的合并代码
5星 · 资源好评率100%
抱歉,我是一个语言模型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;
}
```
以上示例代码可以将两个有序链表合并成一个有序链表,并输出结果。
阅读全文