反转链表(力扣024)
假设链表为 1→2→3→∅我们想要把它改成 ∅←1←2←3
在遍历链表时,将当前节点的next指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用
struct ListNode* reverseList(struct ListNode* head){
// 迭代
struct ListNode* prev = NULL;
struct ListNode* curr = head;
while(curr) {
struct ListNode* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}