逆置带表头结点的单链表算法
时间: 2024-06-02 10:05:19 浏览: 107
单链表存储叶子节点并逆置
4星 · 用户满意度95%
逆置带表头结点的单链表算法可以用三个指针分别指向当前结点、它的前驱结点和后继结点,然后通过遍历链表来逆置每个结点的指针方向。
具体步骤如下:
1. 定义三个指针:preNode, curNode, nextNode,分别指向前驱结点、当前结点和后继结点。
2. 初始化 preNode 为 NULL,curNode 为头结点,nextNode 为头结点的下一个结点。
3. 遍历链表,直到 curNode 为 NULL。在每次循环中,将 curNode 的 next 指针指向 preNode,然后依次向后移动指针,即:preNode = curNode, curNode = nextNode, nextNode = nextNode->next。
4. 最后将头结点的 next 指针指向 preNode,即为逆置后的链表。
下面是实现代码:
```c++
void reverseList(ListNode* head) {
ListNode *preNode = NULL;
ListNode *curNode = head->next;
ListNode *nextNode = head->next;
while (curNode) {
nextNode = nextNode->next;
curNode->next = preNode;
preNode = curNode;
curNode = nextNode;
}
head->next = preNode;
}
```
阅读全文