pta 单链表逆转c原地逆转图示
时间: 2024-10-15 07:19:33 浏览: 2
PTA(Problem Translation Assessment,翻译评估题目)通常指编程算法题目的描述。关于单链表反转(Reverse a singly linked list),这是一个常见的数据结构操作。在C语言中,"原地"(in-place)表示不需要额外的空间,仅通过改变原有节点的指针就可以完成反转。
图示说明:
1. 首先,链表的头结点是反转过程的起点。
2. 可以用三个指针,prev、current(当前节点)和next(下一个节点),初始时,prev为空,current指向头节点,next指向当前节点的下一个元素。
3. 每次迭代,将current的next指向前一个节点prev,然后移动prev和current到下一位,直到current变为NULL,表示遍历完整个列表。
4. 最终,prev就是新链表的头节点。
以下是简单的C语言原地链表反转代码示例:
```c
void reverseList(struct ListNode* head) {
struct ListNode* prev = NULL;
struct ListNode* current = head;
while (current != NULL) {
struct ListNode* nextTemp = current->next; // 保存当前节点的下一个节点
current->next = prev; // 将当前节点的next指向前一个节点
prev = current; // 移动prev和current
current = nextTemp; // 进入下一轮循环
}
head = prev; // 新链表的头节点是原来的尾节点
}
```
阅读全文