链表题目: 反转一个单链表。
参考链接:https://leetcode-cn.com/problems/two-sum/solution/die-dai-di-gui-jie-fa-by-sunshy/
题解:参考注释
//链表反转
ListNode* ReverseList2(ListNode* head)
{
if (head == nullptr){
return nullptr;
}
ListNode* reverseHead = nullptr;
// 指针1:当前节点
ListNode* cur = head;
// 指针2:当前节点的前一个节点
ListNode* pre = nullptr;
while(cur != nullptr){
// 指针3:当前节点的后一个节点
ListNode* next = cur->next;
if(next == nullptr){
reverseHead = cur;
}
// 将当前节点的后一个节点指向前一个节点
cur->next = pre; // 1-> null ;
// 将前一个节点指向当前节点
pre = cur; // pre = 1;
// 将当前节点指向后一个节点
cur = next; // cur = 2;
}
return reverseHead;
}
网友评论