带头结点的单链表反转
时间: 2024-06-16 10:03:22 浏览: 19
带头结点的单链表反转是指将一个带有头结点的单链表中的节点顺序进行反转。具体实现可以通过遍历链表,逐个将节点的指针方向进行反转。
以下是带头结点的单链表反转的步骤:
1. 定义三个指针:prev、curr和next,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。
2. 将prev指向头结点,curr指向头结点的下一个节点。
3. 遍历链表,每次将curr的next指针指向prev,然后依次向后移动prev、curr和next指针。
4. 当curr指向空节点时,表示链表已经反转完成。
5. 最后将头结点的next指针指向prev,完成整个链表的反转。
下面是带头结点的单链表反转的示例代码:
```cpp
void reverseLinkedList(ListNode* head) {
if (head == nullptr || head->next == nullptr) {
return;
}
ListNode* prev = head;
ListNode* curr = head->next;
ListNode* next = nullptr;
while (curr != nullptr) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
head->next = nullptr;
head = prev;
}
```