ListNode* prev = NULL;
while(head) {
ListNode* next = head->next; // 先记住下一个节点
head->next = prev; // 把当前节点指向前一个
prev = head; // 前一个节点变成当前节点
head = next; // 当前节点移动到下一个
}
return prev; // 最后prev就是新的头节点
- 记住前一个节点(刚开始没有,记作
NULL
) - 从第一个节点开始,把它的"下一个"指向前一个节点
- 移动到下一个节点,重复这个过程
- 最后返回新的头节点