思路:
ListNode* reverse(ListNode* head){ListNode* ans{};while (head){ListNode* tmp = head->next;head->next = ans;ans = head;head = tmp;}return ans;
}
- 首先使用tmp記住原始節點的下一個位置,因為需要對原先節點的next指針進行操作,如果不記錄此節點的存儲位置,就會導致數據的缺失
- 保存了先前的節點的next之后,就可以放心使用先前節點的next指針,將其指向一個新創建的指針,此時這個指針還未初始化,因此指向的是nullptr,保證了鏈的末尾指向空這一條件
- ans是每個翻轉節點進行銜接的節點,因此ans需要移動位置
- 讓head指向先前的tmp;tmp記錄head 的next,這三個節點之間是一個閉環的結構
- 牢記此順序