c语言单链表逆转的函数
时间: 2024-10-21 07:08:52 浏览: 16
C语言单链表实现多项式相加
在C语言中,单链表逆转通常通过迭代或递归的方式来实现。这里提供一种常见的迭代方法,你可以创建一个新的头节点,并逐个将原链表的节点添加到新链表的前面:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
void reverseList(Node** head) {
Node* prev = NULL; // 记录前一个节点
Node* current = *head; // 当前处理的节点
Node* next暂存; // 存储当前节点的下一个节点
while (current != NULL) {
next暂存 = current->next; // 保存当前节点的下一个节点
current->next = prev; // 将当前节点指向prev
prev = current; // 更新prev指向前一个节点
current = next暂存; // 移动到下一个节点
}
*head = prev; // 最后prev成为新的头节点
}
```
这个函数接收链表的头指针作为输入,内部通过改变节点的`next`指针,使得链表的方向从原来的正向变为反向。
阅读全文