用头插法实现链表逆置简单代码c++
时间: 2024-09-23 14:03:44 浏览: 54
头插法(Head Insertion)是一种常见的链表操作,用于将链表反转。以下是使用C++实现单向链表逆置的一个简短代码:
```cpp
#include <iostream>
// 定义链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(nullptr) {}
};
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr; // 初始化前驱指针为空
ListNode* current = head; // 初始化当前指针为头结点
while (current != nullptr) { // 当链表非空时
ListNode* nextTemp = current->next; // 保存当前节点的下一个节点
current->next = prev; // 将当前节点的next指向前一个节点
prev = current; // 更新前驱指针
current = nextTemp; // 移动到下一个节点
}
return prev; // 返回新链表的头节点
}
int main() {
ListNode* list = new ListNode(1);
list->next = new ListNode(2);
list->next->next = new ListNode(3); // 创建一个简单的链表
list->next->next->next = new ListNode(4);
std::cout << "Original List: ";
printList(list);
ListNode* reversed = reverseList(list);
std::cout << "\nReversed List: ";
printList(reversed);
return 0;
}
// 打印链表辅助函数
void printList(ListNode* node) {
while (node != nullptr) {
std::cout << node->val << " -> ";
node = node->next;
}
std::cout << "nullptr\n";
}
```
这段代码首先创建了一个链表,然后通过`reverseList`函数将其逆序,最后打印原链表和逆序后的链表。
阅读全文
相关推荐


















