C++ 结构体的构造函数

本文详细介绍了ListNode结构体的构造函数,包括其声明、定义以及如何通过初始化列表设置成员变量val和next。通过构造函数创建了一个包含节点1、2、3的简单链表实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详解:
ListNode(int x, ListNode* next) : val(x), next(next) {}ListNode 结构体的构造函数。

  1. ListNode(int x, ListNode* next):这是构造函数的声明部分。指定了构造函数的名称为 ListNode,参数列表包括一个整数 x 和一个指向 ListNode 类型的指针 next

  2. : val(x), next(next) {}:这是构造函数的定义部分,使用了初始化列表。初始化列表是在构造函数体之前使用冒号 : 分隔的部分,用于初始化成员变量。

    • val(x):这个初始化列表项将构造函数的参数 x 的值赋给成员变量 val。这样,在创建 ListNode 对象时,可以通过构造函数传入一个值,并将该值赋给 val

    • next(next):这个初始化列表项将构造函数的参数 next 的值赋给成员变量 next。这样,在创建 ListNode 对象时,可以通过构造函数传入一个指向下一个节点的指针,并将该指针赋给 next

需注意:next 是一个指针类型,它指向下一个 ListNode 对象。通过构造函数,我们可以在创建新节点时,指定它的值和下一个节点的指针。

示例:
使用 ListNode(int x, ListNode* next) 构造函数创建一个链表:

struct ListNode {
    int val;
    ListNode* next;

    ListNode(int x, ListNode* next) : val(x), next(next) {}
};

int main() {
    ListNode* node3 = new ListNode(3, nullptr);  // 创建节点 3,没有下一个节点
    ListNode* node2 = new ListNode(2, node3);  // 创建节点 2,下一个节点是节点 3
    ListNode* node1 = new ListNode(1, node2);  // 创建节点 1,下一个节点是节点 2

    // 输出链表的值
    ListNode* current = node1;
    while (current != nullptr) {
        std::cout << current->val << " ";
        current = current->next;
    }
    std::cout << std::endl;

    return 0;
}

通过 ListNode(int x, ListNode* next) 构造函数创建了一个简单的链表,其中节点的值分别为 1、2、3。每个节点都指向下一个节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值