头插法单链表的逆置c
时间: 2024-09-26 17:15:31 浏览: 38
头插法单链表的逆置是指将一个已排序的单链表按照相反的顺序排列。在C语言中,我们可以使用三个指针:prev、current 和 next,来进行遍历并调整节点的位置。具体步骤如下:
1. 初始化prev为NULL,current为头节点。
2. 当current非空时,执行以下操作:
- 将当前节点的next指向前一个节点(即prev = current->next)。
- 然后将当前节点的next指向下一个待处理的节点(即current->next = next)。
- 最后,移动到下一个节点(即current = current->next)。
3. 遍历结束后,将原头节点(现在是最后一个节点)设为新的头节点(即list->head = prev)。
以下是这个过程的伪代码和部分C代码示例:
```c
struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* prev = NULL;
struct ListNode* current = head;
while (current != NULL) {
struct ListNode* nextTemp = current->next; // 保存当前节点的下一个节点
current->next = prev; // 调整当前节点的next指向前一个
prev = current; // 移动前一个指针
current = nextTemp; // 移动当前指针到下一个
}
return prev; // 返回新头节点
}
```
阅读全文