用c语言编写实现带头结点单链表就地逆置的成员函数
时间: 2024-05-15 15:15:20 浏览: 113
056 单链表就地逆置 C语言
5星 · 资源好评率100%
以下是一个用C语言编写的带头结点单链表就地逆置的成员函数:
```c
void reverseList(Node *head)
{
if (head == NULL || head->next == NULL) {
return;
}
Node *prev = NULL;
Node *curr = head->next;
Node *next = NULL;
while (curr != NULL) {
next = curr->next; // 保存下一个节点
curr->next = prev; // 反转当前节点
prev = curr; // 移动prev指针
curr = next; // 移动curr指针
}
head->next = prev; // 将头节点指向反转后的链表头
}
```
该函数首先判断链表是否为空或只有一个节点,如果是,则直接返回。接着,定义三个指针prev、curr和next,分别指向当前节点的前一个节点、当前节点和下一个节点。然后,从头节点的下一个节点开始遍历链表,将当前节点指向前一个节点,然后移动prev、curr和next指针。最后,将头节点指向反转后的链表头。
阅读全文