数据结构如何实现单链表逆序,举个例子
时间: 2023-05-21 11:05:04 浏览: 317
实现单链表逆序有多种方法,其中一种比较常见的方法是采用迭代的方式进行逆序,具体实现步骤如下:
1. 定义三个指针pre、cur、next,分别表示当前节点的前一个节点、当前节点和当前节点的后一个节点。
2. 将cur指向链表的头节点,pre指向null。
3. 依次遍历链表中的每个节点,将cur的next指针指向pre。
4. 同时将pre、cur、next依次往后移动一个节点,继续遍历链表,直到cur指向最后一个节点。
5. 完成链表的逆序操作后,将链表的头节点指向cur节点。
下面是一个示例代码:
// 定义单链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
// 实现单链表逆序
ListNode* reverseList(ListNode* head) {
ListNode* pre = NULL;
ListNode* cur = head;
ListNode* next = NULL;
while(cur != NULL) {
next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
return pre;
}
假设初始链表为:1 -> 2 -> 3 -> NULL,经过逆序操作后,链表变成:3 -> 2 -> 1 -> NULL。
阅读全文