c++新建两个链表AList和BList并完成如下操作: AList : 7 6 5 2 1 BList : 9 7 5 3 2 (1)将两个链表按从高到低的顺序合并为一个链表
时间: 2024-10-15 21:25:08 浏览: 4
在C++中,我们可以创建链表节点结构体,并分别初始化`AList`和`BList`。然后,我们需要编写一个函数来合并这两个链表,按照从高到低的顺序排列。这里我们假设已经有一个简单的链表节点定义:
```cpp
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* mergeTwoLists(ListNode* A, ListNode* B) {
if (A == nullptr) return B;
if (B == nullptr) return A;
// 如果A的值大于B,就直接将A添加到结果链表,并更新A指针
if (A->val > B->val) {
A->next = mergeTwoLists(A->next, B);
return A;
} else {
// 否则,将B添加到结果链表,并更新B指针
B->next = mergeTwoLists(A, B->next);
return B;
}
}
void printList(ListNode* head) {
while (head != nullptr) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
}
int main() {
// 初始化AList和BList
ListNode* AList = new ListNode(7);
AList->next = new ListNode(6);
AList->next->next = new ListNode(5);
AList->next->next->next = new ListNode(2);
AList->next->next->next->next = new ListNode(1);
ListNode* BList = new ListNode(9);
BList->next = new ListNode(7);
BList->next->next = new ListNode(5);
BList->next->next->next = new ListNode(3);
BList->next->next->next->next = new ListNode(2);
// 合并链表
ListNode* mergedList = mergeTwoLists(AList, BList);
// 打印合并后的链表
printList(mergedList);
// 清理内存
delete mergedList;
return 0;
}
```
运行这个程序,你会看到合并后的链表输出:`9 7 7 6 5 5 3 2 2 1`,这是从高到低的顺序。