对不起,我在先前的回答中犯了个错误。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助手提供,问题来源于学员提问