输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
总结:要想逆置,要保存上一个结点,并且保存下一个结点。因为一旦逆置后,链表断开了,所以必须提前保存下一个结点。
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head || !head->next) return head;
ListNode* pre = NULL;
while(head){
ListNode *post = head->next;
head->next = pre;
pre = head;
head = post;
}
return pre;
}
};