用c语言实现单链表逆置的函数
时间: 2024-09-14 17:09:46 浏览: 53
在C语言中,实现单链表逆置的函数通常通过调整链表中节点的指针方向来完成。具体步骤是遍历链表,逐个改变节点间的指向关系,将原来指向下一个节点的指针改为指向前一个节点。这里有一个简单的示例代码来展示如何实现这个过程:
```c
// 定义链表节点结构体
struct ListNode {
int val;
struct ListNode *next;
};
// 单链表逆置函数
struct ListNode* reverseList(struct ListNode* head) {
struct ListNode *prev = NULL; // 初始化前一个节点指针为NULL
struct ListNode *curr = head; // 当前节点指针指向头节点
struct ListNode *next; // 下一个节点指针
while (curr != NULL) {
next = curr->next; // 保存下一个节点
curr->next = prev; // 当前节点指向前一个节点,实现逆置
prev = curr; // 前一个节点后移
curr = next; // 当前节点后移
}
head = prev; // 最后prev指向新的头节点
return head;
}
```
这个函数会返回逆置后的链表头节点。需要注意的是,这里的`reverseList`函数接受的参数是头节点指针`head`,在逆置完成后,原来的头节点变成了新的尾节点,因此返回的是原链表最后一个节点,即逆置后的头节点。
阅读全文