单链表怎么倒序
时间: 2024-02-15 17:01:21 浏览: 57
单链表倒置操作
4星 · 用户满意度95%
单链表的倒序可以通过以下步骤来实现:
1. 定义三个指针变量,分别为当前节点指针(cur)、前驱节点指针(pre)、后继节点指针(next),并将它们的初始值分别赋为头结点、NULL、NULL。
2. 遍历单链表,将当前节点的后继节点指针指向前驱节点,然后分别将前驱节点指针、当前节点指针、后继节点指针向后移动一个节点,直至当前节点指针指向NULL为止。
3. 将头结点的后继节点指针指向前驱节点,完成单链表的倒序。
下面是使用C++语言实现单链表倒序的示例代码:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
ListNode *cur = head, *pre = NULL, *next = NULL;
while (cur != NULL) {
next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
head = pre;
return head;
}
int main() {
ListNode *head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
head->next->next->next = new ListNode(4);
head->next->next->next->next = new ListNode(5);
cout << "Original List: ";
ListNode *p = head;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
head = reverseList(head);
cout << "\nReversed List: ";
p = head;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
return 0;
}
```
输出结果为:
```
Original List: 1 2 3 4 5
Reversed List: 5 4 3 2 1
```
阅读全文