c语言就地逆置一条带头节点的单链表,头插法
时间: 2023-06-16 20:07:48 浏览: 105
头插法逆置-单链表.c
假设链表的头节点为head,原链表为:head -> a -> b -> c -> d
1. 从头节点的下一个节点a开始,依次将每个节点插入到头节点head之后
2. 需要一个中间变量p来暂存当前节点的下一个节点,防止链表断裂
代码实现如下:
```c
void reverseList(Node *head) {
if (head == NULL || head->next == NULL) {
return;
}
Node *p = head->next; // p指向第一个要插入的节点a
head->next = NULL; // 将头节点的next指针置为空,防止链表断裂
while (p != NULL) {
Node *next = p->next; // 暂存下一个节点
p->next = head->next; // 将p节点插入到头节点之后
head->next = p;
p = next; // p指向下一个节点,继续插入操作
}
}
```
执行上述代码后,链表变为:head -> d -> c -> b -> a
阅读全文