单链表的逆置c++的算法
时间: 2024-09-27 18:07:35 浏览: 53
单链表逆置-c++-文档输出
单链表逆置的C++算法通常使用迭代或递归的方式实现。这里是一个常见的迭代方法:
```cpp
void reverseList(ListNode* &head) {
ListNode *prev = nullptr, *current = head, *next = nullptr;
while (current != nullptr) {
// 保存当前节点的下一个节点
next = current->next;
// 将当前节点指向前一个节点
current->next = prev;
// 移动指针向前
prev = current;
current = next;
}
// 更新头节点为新的首节点
head = prev;
}
```
在这个算法中,我们维护三个指针:`prev`、`current` 和 `next`。初始时,`prev` 指向 `nullptr`,`current` 指向链表的头节点,`next` 则指向 `current` 的下一个节点。每次循环中,我们将 `current` 的 `next` 指向 `prev`,然后移动指针到下一对节点,直到遍历完整个链表。最后,链表的头节点就被设置为了原链表的尾节点。
阅读全文