带头结点的单链表就地逆置程序
时间: 2023-04-08 11:02:40 浏览: 166
对单链表实现就地逆置算法
4星 · 用户满意度95%
以下是带头结点的单链表就地逆置程序:
```
void ReverseList(LinkList &L) {
// 判断链表是否为空或只有一个节点
if (L == NULL || L->next == NULL) {
return;
}
// 定义三个指针,分别指向当前节点、前驱节点和后继节点
ListNode *p = L->next, *pre = L, *q;
while (p != NULL) {
q = p->next; // 记录后继节点
p->next = pre; // 将当前节点的 next 指针指向前驱节点
pre = p; // 前驱节点后移
p = q; // 当前节点后移
}
L->next = pre; // 将头结点的 next 指针指向新的头节点
}
```
希望能够帮助到你!
阅读全文