ZBLOG

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

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

  1. #include <iostream>
  2. // 定义链表节点
  3. struct ListNode {
  4. int val;
  5. ListNode* next;
  6. ListNode(int value) : val(value), next(nullptr) {}
  7. };
  8. // 反转链表函数
  9. ListNode* reverseList(ListNode* head) {
  10. ListNode* prev = nullptr;
  11. ListNode* curr = head;
  12. while (curr != nullptr) {
  13. ListNode* nextTemp = curr->next; // 保存当前节点的下一个节点
  14. // 将当前节点的next指针指向前一个节点
  15. curr->next = prev;
  16. prev = curr; // 更新prev为当前节点
  17. curr = nextTemp; // 更新curr为下一个节点
  18. }
  19. return prev; // 返回反转后的头结点
  20. }
  21. // 打印链表元素
  22. void printList(ListNode* head) {
  23. while (head != nullptr) {
  24. std::cout << head->val << " ";
  25. head = head->next;
  26. }
  27. std::cout << std::endl;
  28. }
  29. int main() {
  30. // 创建链表:1 -> 2 -> 3 -> 4 -> nullptr
  31. ListNode* head = new ListNode(1);
  32. head->next = new ListNode(2);
  33. head->next->next = new ListNode(3);
  34. head->next->next->next = new ListNode(4);
  35. std::cout << "原始链表: ";
  36. printList(head);
  37. // 反转链表
  38. head = reverseList(head);
  39. std::cout << "反转后的链表: ";
  40. printList(head);
  41. return 0;
  42. }

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


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?