当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击