c语言链表的逆序输出
时间: 2024-09-29 08:12:14 浏览: 38
在 C 语言中,链表的逆序输出通常涉及到两个步骤:创建一个新的头结点,并将原始链表中的节点顺序插入到新链表的尾部。这里是一个简单的示例,假设我们有一个单向链表节点结构体 `Node` 和指针变量 `current`:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建新链表并逆序输出原链表
void reversePrintList(Node* head) {
Node* prev = NULL; // 指向当前节点前一个节点
Node* current = head; // 初始化当前节点
while (current != NULL) { // 当链表非空时
Node* next_temp = current->next; // 保存当前节点的下一个节点
current->next = prev; // 将当前节点指向prev
prev = current; // 移动prev到current
current = next_temp; // 更新current到下一个节点
}
// 输出逆序后的链表
while (prev != NULL) {
printf("%d ", prev->data); // 输出节点值
prev = prev->next;
}
}
// 主函数测试
int main() {
// 假设你已经定义了一个链表并初始化了head
if (head == NULL) {
printf("链表为空\n");
} else {
reversePrintList(head);
}
return 0;
}
```
当你运行这个程序时,它会按照从后向前的顺序打印出链表的内容。
阅读全文