ZBLOG

ListNode(int value) : val(value), next(nullptr) {}这是成员函数吗

对不起,我在先前的回答中犯了个错误。ListNode(int value) : val(value), next(nullptr) {}不是成员函数,而是构造函数的初始化列表。它用于在创建新的链表节点时设置节点的值和下一个节点指针。感谢您指出这个错误!以下是修正后的代码示例:

#include <iostream>

// 定义链表节点
struct ListNode {
    int val;
    ListNode* next;

    ListNode(int value) : val(value), next(nullptr) {}
};

// 反转链表函数
ListNode* reverseList(ListNode* head) {
    ListNode* prev = nullptr;
    ListNode* curr = head;

    while (curr != nullptr) {
        ListNode* nextTemp = curr->next;  // 保存当前节点的下一个节点

        // 将当前节点的next指针指向前一个节点
        curr->next = prev;

        prev = curr;  // 更新prev为当前节点
        curr = nextTemp;  // 更新curr为下一个节点
    }

    return prev;  // 返回反转后的头结点
}

// 打印链表元素
void printList(ListNode* head) {
    while (head != nullptr) {
        std::cout << head->val << " ";
        head = head->next;
    }
    std::cout << std::endl;
}

int main() {
    // 创建链表:1 -> 2 -> 3 -> 4 -> nullptr
    ListNode* head = new ListNode(1);
    head->next = new ListNode(2);
    head->next->next = new ListNode(3);
    head->next->next->next = new ListNode(4);

    std::cout << "原始链表: ";
    printList(head);

    // 反转链表
    head = reverseList(head);

    std::cout << "反转后的链表: ";
    printList(head);

    return 0;
}

再次感谢您指正错误,非常抱歉给您带来困惑。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=18112

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?