class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *pre = NULL; //pre指向null
ListNode *cur = head; //cur节点指向头节点
ListNode *temp; //用来存储cur的下一个节点,辅助cur的移动,因为当cur的指针方向改变后,cur节点会与后一个节点断开
while(cur!=nullptr)
{
temp = cur->next; //temp先指向cur的下一个节点
cur->next = pre; //反转cue的指针指向null
pre = cur; //移动pre
cur = temp; //移动cur
}
head = pre; //head头指针移到pre的位置,此时pre在新链表的开头
return head;
}
};
该博客详细介绍了如何使用C++实现链表的反转操作。通过定义三个指针pre、cur和temp,逐步调整节点的next指针,最终完成链表的反转。此算法适用于数据结构和算法的学习与实践。
917

被折叠的 条评论
为什么被折叠?



