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; }