0 题目
输入一个链表,反转链表后,输出链表的所有元素。
1 分析
不停的倒腾。
1->2->3->4->5;
先保存2的next为tmp,然后2的next指向1,1的next指向保存的tmp。完成一轮交换。
也就是说,每次都把,1的next,放到链表头。
ListNode *ReverseList(ListNode *pHead)
{
if (pHead == nullptr)
{
return nullptr;
}
ListNode *head = pHead;
ListNode *next_head = pHead->next;
while (next_head != nullptr)
{
ListNode *tmp = next_head->next;
next_head->next = head;
head = next_head;
next_head = tmp;
}
// 不要忘记这一步,原来的头指针,变成了尾指针,因此next为nullptr
pHead->next = nullptr;
return head;
}