同=用C语言实现一个函数,按输入数据的逆序建立一个链表
时间: 2024-09-20 10:12:43 浏览: 52
逆序数据建立链表pta.docx
在C语言中,你可以通过递归或迭代的方式实现一个函数来构建逆序链表。这里提供一个基于迭代的解决方案:
首先,你需要定义一个简单的链表节点结构体,例如:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
```
接下来,创建一个函数`reverseList`,它接受链表头节点作为参数,并返回逆序后的链表头节点:
```c
Node* reverseList(Node* head) {
if (head == NULL || head->next == NULL) { // 如果链表为空或只有一个元素,直接返回
return head;
}
Node* prev = NULL; // 指向前一个节点,初始化为NULL
Node* curr = head; // 当前节点,初始为头节点
while (curr != NULL) { // 遍历整个链表
Node* nextTemp = curr->next; // 保存当前节点的下一个节点
curr->next = prev; // 将当前节点的next指向前一个节点,达到反转的效果
prev = curr; // 更新prev指向当前节点
curr = nextTemp; // 移动到下一个节点
}
return prev; // 返回新的链表头节点
}
```
这个函数会改变原链表的顺序,使其从原来的正序变为逆序。
阅读全文