2.设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
时间: 2023-04-11 10:01:57 浏览: 254
数据结构-链表逆置算法实现
可以使用三个指针来实现链表的反转,具体步骤如下:
1. 定义三个指针 prev、curr、next,分别指向当前结点的前一个结点、当前结点和当前结点的后一个结点。
2. 初始化 prev 为 NULL,curr 为链表的头结点。
3. 遍历链表,每次将 curr 的 next 指针指向 prev,然后将 prev、curr、next 分别向后移动一个结点,直到 curr 指向链表的尾结点。
4. 最后将链表的头结点指向 prev,完成链表的反转。
以下是具体的代码实现:
void reverseList(Node* head) {
Node* prev = NULL;
Node* curr = head;
Node* next = NULL;
while (curr != NULL) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
head = prev;
}
阅读全文