有没有完整的c++代码
时间: 2023-08-07 08:35:16 浏览: 29
当然有,以下是用 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) {
ListNode* dummy = new ListNode(0);
ListNode* cur = dummy;
ListNode* p1 = l1;
ListNode* p2 = l2;
while (p1 && p2) {
if (p1->val <= p2->val) {
cur->next = p1;
p1 = p1->next;
}
else {
cur->next = p2;
p2 = p2->next;
}
cur = cur->next;
}
if (p1) {
cur->next = p1;
}
else {
cur->next = p2;
}
return dummy->next;
}
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* merged = mergeTwoLists(l1, l2);
while (merged) {
cout << merged->val << " ";
merged = merged->next;
}
cout << endl;
return 0;
}
```
这里使用了 `ListNode` 结构体来定义链表节点,`mergeTwoLists` 函数接收两个链表的头部节点作为参数,返回合并后的链表的头部节点。在 `main` 函数中对两个链表进行初始化,调用 `mergeTwoLists` 函数合并链表,并输出合并后的链表。