针对线性表的单链表存储结构,编写算法实现逆置。
时间: 2023-06-17 13:06:37 浏览: 123
c语言数据结构实验:掌握线性表的链式存储结构 熟练掌握循环链表的存储特征和建立方法,掌握线性表的链式存储结构 下面是源码的txt
以下是单链表逆置的算法实现:
```c
void reverseList(LinkList &L)
{
if (L == NULL || L->next == NULL) {
return;
}
ListNode *p = L->next;
ListNode *q = p->next;
p->next = NULL;
while (q != NULL) {
ListNode *r = q->next;
q->next = p;
p = q;
q = r;
}
L->next = p;
}
```
算法思路:
1. 判断链表是否为空或只有一个节点,若是则直接返回;
2. 从第一个节点开始,依次将当前节点的 next 指针指向它的前一个节点;
3. 遍历到链表末尾时,将链表的头结点的 next 指针指向原链表的尾节点。
注意:在实现过程中要注意链表头结点的处理。
阅读全文