用C语言写链表的逆置就地逆置法
时间: 2023-02-21 11:02:55 浏览: 123
056 单链表就地逆置 C语言
5星 · 资源好评率100%
用 C 语言写链表的就地逆置算法的话,可以使用三个指针变量:
```
struct ListNode {
int val;
struct ListNode *next;
};
void reverseList(struct ListNode** head) {
struct ListNode *prev = NULL;
struct ListNode *curr = *head;
struct ListNode *next = NULL;
while (curr != NULL) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
*head = prev;
}
```
这个算法在循环中不断改变指针的指向,直到整个链表都被逆置。最后,需要把头结点指针指向逆置后的链表的最后一个结点。
阅读全文