迭代法实现链表反转
因为单链表只能由当前节点查找到后一节点,因此使用迭代法需要保存当前节点的后一节点。
定义三个指针:prev curr next;
curr 指向当前节点,next保存当前节点的下一节点(next = curr.next),prev保存当前节点的前一个节点。
C语言代码实现:
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode* prev = NULL;
struct ListNode* curr = head;
struct ListNode* next;
while (curr != NULL) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}