以下是一个示例代码,演示如何将带有头结点的链表置空:

#include <iostream>

// 定义链表节点结构体
struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(nullptr) {}
};

// 函数:将链表置空
void clearList(ListNode* head) {
    ListNode* curr = head->next;  // 从头结点的下一个节点开始
    while (curr != nullptr) {
        ListNode* temp = curr;
        curr = curr->next;
        delete temp;  // 释放节点内存
    }
    head->next = nullptr;  // 头结点的next指针指向空
}

// 测试用例
int main() {
    // 创建一个带有头结点的链表
    ListNode* head = new ListNode(0);
    head->next = new ListNode(1);
    head->next->next = new ListNode(2);
    head->next->next->next = new ListNode(3);
    
    // 输出原链表
    std::cout << "原链表:";
    ListNode* curr = head->next;
    while (curr != nullptr) {
        std::cout << curr->val << " ";
        curr = curr->next;
    }
    std::cout << std::endl;
    
    // 将链表置空
    clearList(head);
    
    // 输出置空后的链表
    std::cout << "置空后的链表:";
    curr = head->next;
    while (curr != nullptr) {
        std::cout << curr->val << " ";
        curr = curr->next;
    }
    std::cout << std::endl;
    
    delete head;  // 释放头结点内存
    
    return 0;
}

这段代码首先定义了一个链表节点结构体ListNode,包含一个整数值val和指向下一个节点的指针next。然后定义了clearList函数,用于将链表置空。该函数从头结点的下一个节点开始,逐个删除节点并释放内存,直到链表末尾。最后,通过创建一个带有头结点的链表,并调用clearList函数将链表置空。输出置空后的链表,可以看到链表已经为空。最后,释放头结点的内存。

有头结点的链表如何置空用c++代码举例

原文地址: https://www.cveoy.top/t/topic/i5ja 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录