c++ 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
时间: 2023-12-30 13:04:22 浏览: 88
下面是使用C++实现反转单链表的代码:
```cpp
#include <iostream>
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
ListNode* prev = NULL;
ListNode* curr = head;
while (curr) {
ListNode* nextNode = curr->next;
curr->next = prev;
prev = curr;
curr = nextNode;
}
return prev;
}
int main() {
// 创建示例链表
ListNode* head = new ListNode(1);
ListNode* node2 = new ListNode(2);
ListNode* node3 = new ListNode(3);
ListNode* node4 = new ListNode(4);
ListNode* node5 = new ListNode(5);
head->next = node2;
node2->next = node3;
node3->next = node4;
node4->next = node5;
// 反转链表
ListNode* newHead = reverseList(head);
// 打印反转后的链表
ListNode* node = newHead;
while (node) {
std::cout << node->val << "->";
node = node->next;
}
std::cout << "NULL" << std::endl;
return 0;
}
```
输出结果为:5->4->3->2->1->NULL
阅读全文