题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { //处理空链表 if(pHead == nullptr){ return nullptr; } ListNode* cur = pHead; //创建当前指针指向头节点 ListNode* pre = nullptr; //创建首指针指向前一个节点 while(cur != nullptr){ //当前指针指向空,退出循环 ListNode *temp = cur -> next; //记录当前节点的后一个节点 cur -> next = pre; //当前节点指向前一个节点 pre = cur; //前一个节点的指针后移一位 cur = temp; //当前节点的指针后移一位 } return pre; } };