用C语言给定一个带头结点的单链表,将单链表就地逆置。
时间: 2024-05-05 12:20:25 浏览: 145
056 单链表就地逆置 C语言
5星 · 资源好评率100%
好的,可以通过修改指针来将单链表就地逆置,具体的实现方法如下:
```
void reverseList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* curr = head->next;
head->next = nullptr;
while (curr != nullptr) {
ListNode* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
head->next = prev;
}
```
其中,prev 表示已经反转的部分的头结点,curr 表示将要被反转的部分的头结点,利用 while 循环遍历整个链表,同时用 prev、curr、next 指针来完成以 curr 为头结点的部分的反转操作。最后,将头结点的 next 指向反转后链表的头结点 prev 即可。
阅读全文