c++如何把一个链表加到另一个链表后面
作者:野牛程序员:2023-11-26 11:55:17 C++阅读 2467
使用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++如何将单链表数据存入文件中