请用c++语言用链表的形式两个输入有序表合并为一个有序表并给出注释
时间: 2024-02-22 21:55:09 浏览: 26
好的,下面是代码和注释:
```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) {
// 创建 dummy 节点作为新链表的头结点
ListNode* dummy = new ListNode(0);
// 创建指针 cur 指向新链表的最后一个节点
ListNode* cur = dummy;
while (l1 != NULL && l2 != NULL) {
if (l1->val <= l2->val) {
cur->next = l1; // 将 l1 添加到新链表的末尾
l1 = l1->next; // l1 往后移动一位
} else {
cur->next = l2; // 将 l2 添加到新链表的末尾
l2 = l2->next; // l2 往后移动一位
}
cur = cur->next; // 新链表的最后一个节点指向刚刚添加的节点
}
// 将剩余的节点添加到新链表的末尾
if (l1 != NULL) cur->next = l1;
if (l2 != NULL) cur->next = l2;
return dummy->next; // 返回新链表的头结点
}
int main() {
// 创建链表 1 -> 3 -> 5
ListNode* l1 = new ListNode(1);
l1->next = new ListNode(3);
l1->next->next = new ListNode(5);
// 创建链表 2 -> 4 -> 6
ListNode* l2 = new ListNode(2);
l2->next = new ListNode(4);
l2->next->next = new ListNode(6);
// 合并两个有序链表
ListNode* mergedList = mergeTwoLists(l1, l2);
// 输出合并后的链表
while (mergedList != NULL) {
cout << mergedList->val << " ";
mergedList = mergedList->next;
}
return 0;
}
```
注释已经写在代码里了,如果有不懂的地方可以在评论区留言,我会尽快回复。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)