用c++实现单链表的逆置
时间: 2024-10-11 14:01:59 浏览: 36
本函数完成一个单链表的逆置。-C++东南大学何洁月课件(总)
要实现C++单链表的逆置,可以按照以下步骤操作[^1]:
```cpp
// 假设有一个结构体定义了链表节点
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 函数来逆置链表
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr; // 初始化前驱节点为空
ListNode* curr = head; // 初始化当前节点为头节点
// 当链表非空时,继续遍历并交换节点指针
while (curr != nullptr) {
ListNode* temp = curr->next; // 保存下一个节点
curr->next = prev; // 更新当前节点的next指向prev
prev = curr; // 更新prev指向当前节点
curr = temp; // 移动到下一个节点
}
return prev; // 返回新的头节点,即原链表的尾节点
}
```
这段代码创建了一个名为`reverseList`的函数,它接受链表的头节点作为参数,通过迭代的方式逆置链表,并返回新的头节点。注意这个过程不需要额外存储完整的链表副本[^2]。
阅读全文