题目描述:
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
解题思路:
定义两个辅助指针,分别指向新链表的头结点q和它的下一个结点tmp。在遍历过程中,先保存当前结点的下一个结点赋给tmp,然后让当前结点指向新链表的头结点q,然后更新q结点和当前结点。直到当前结点为null。
Demo:
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *q = nullptr, *tmp;
while (pHead != nullptr)
{
tmp = pHead->next;
pHead->next = q;
q = pHead;
pHead = tmp;
}
return q;
}
};