7-70 链表的逆置

时间:2024-05-02 08:54:30

输入若干个不超过100的整数,建立单链表,然后将链表中所有结点的链接方向逆置,要求仍利用原表的存储空间。输出逆置后的单链表。

输入格式:

首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在一行上输入数据个数n及n个不超过100的整数。

输出格式:

对于每组测试,输出逆置后的单链表,每两个数据之间留一个空格。

输入样例:

1
11 55 50 45 40 35 30 25 20 15 10 5
#include <stdio.h>
#include <stdlib.h>

// 定义单链表的结点类型
typedef struct Node {
    int data;
    struct Node *next;
} Node;

// 创建新结点
Node* createNode(int data) {
    Node *newNode = (Node*)malloc(sizeof(Node));
    if (!newNode) {
        printf("内存分配失败。\n");
        exit(0);
    }
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

// 插入结点到链表
void insertNode(Node **head, int data) {
    Node *newNode = createNode(data);
    if (*head == NULL) {
        *head = newNode;
    } else {
        Node *temp = *head;
        whil