步骤
- 由头插法建立单链表(实际上已经实现了一次逆转)
- 构造函数,返回翻转后的单链表的头结点
- 以头结点为开始结点输出单链表
可执行代码
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
Node *next;
};
Node* reverseList(Node* head)
{
Node *prev = NULL;
Node *curr = head;
while (curr != NULL)
{
head=curr;
curr = curr->next;
head->next=prev;
prev = head;
}
return head;
}
void printList(Node* head)
{
while (head != NULL)
{
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
int main() {
Node *head = NULL;
Node *temp = NULL;
for (int i = 1; i <= 5; i++)
{
temp = (Node*)malloc(sizeof(Node));
temp->data = i;
temp->next = head;
head = temp;
}
printf("Original List: ");
printList(head);
head = reverseList(head);
printf("Reversed List: ");
printList(head);
return 0;
}
执行结果