双指针法
- 用一个临时变量
tmp
记录下一个节点 - 然后改变链表方向,指向
pre
- 更新链表节点(往前移动),
pre
变为head
,head
变为下一个节点
struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* tmp;
struct ListNode* pre = NULL;
while (head) {
tmp = head->next;
head->next = pre;
pre = head;
head = tmp;
}
return pre;
}