c++如何把一个链表加到另一个链表后面
作者:野牛程序员:2023-11-26 11:55:17 C++阅读 2854
使用C++将一个链表连接到另一个链表的末尾可以通过以下步骤完成:
#include <iostream>
// 定义链表节点
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
// 将链表B连接到链表A的末尾
void appendLinkedList(Node*& listA, Node* listB) {
if (listA == nullptr) {
// 如果链表A为空,直接将链表B赋给链表A
listA = listB;
} else {
// 否则找到链表A的末尾节点,将其next指针指向链表B的头节点
Node* current = listA;
while (current->next != nullptr) {
current = current->next;
}
current->next = listB;
}
}
// 打印链表
void printLinkedList(Node* head) {
Node* current = head;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
std::cout << std::endl;
}
int main() {
// 创建链表A: 1 -> 2 -> 3
Node* listA = new Node(1);
listA->next = new Node(2);
listA->next->next = new Node(3);
// 创建链表B: 4 -> 5 -> 6
Node* listB = new Node(4);
listB->next = new Node(5);
listB->next->next = new Node(6);
// 将链表B连接到链表A的末尾
appendLinkedList(listA, listB);
// 打印连接后的链表
printLinkedList(listA);
// 注意:在实际应用中,可能需要释放动态分配的内存
// 以防止内存泄漏,这里简化为只释放链表A的内存
while (listA != nullptr) {
Node* temp = listA;
listA = listA->next;
delete temp;
}
return 0;
}上述代码首先定义了一个简单的链表节点结构(Node),然后通过 appendLinkedList 函数将链表B连接到链表A的末尾。最后,通过 printLinkedList 函数打印连接后的链表。在实际应用中,需要根据具体情况释放动态分配的内存。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c语言从文件读取数据到链表
- 下一篇:c++如何将单链表数据存入文件中
