利用单链表原来的结点空间逆转一个单链表
时间: 2024-05-05 07:21:29 浏览: 71
单链表逆转操作
可以通过遍历单链表,依次将每个结点的指针指向它的前驱结点来实现单链表的逆转。需要注意的是,在修改指针指向时,需要记录当前结点的前驱结点和后继结点,以免丢失链表中的结点。
以下是一个示例代码:
```c++
void reverseLinkedList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* curr = head;
while (curr != nullptr) {
ListNode* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
head = prev;
}
```
在这段代码中,使用三个指针分别记录当前结点、当前结点的前驱结点和后继结点。在遍历单链表的过程中,将当前结点的指针指向它的前驱结点,然后将指针向后移动。最后将头结点指向逆转后的链表的头结点,完成单链表的逆转。
阅读全文