创建一个带头结点的长度为10的单链表。创建完成后,输出显示所创建单链表各结点的值

创建一个带头结点的单链表。
要求:此单链表长度为 10;创建完成后,输出显示所创建单链表各结点的
值。

该回答引用chatgpt:


#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node, *LinkedList;

LinkedList createLinkedList(int n) {
    LinkedList head = (LinkedList) malloc(sizeof(Node)); // 创建头结点
    head->next = NULL;

    LinkedList tail = head; // 指向链表最后一个结点的指针

    int i;
    for (i = 0; i < n; i++) {
        LinkedList node = (LinkedList) malloc(sizeof(Node)); // 创建新结点
        node->data = i + 1;
        node->next = NULL;

        tail->next = node; // 将新结点添加到链表尾部
        tail = node; // 将 tail 指向新结点
    }

    return head;
}

void printLinkedList(LinkedList head) {
    LinkedList p = head->next;
    while (p != NULL) {
        printf("%d ", p->data);
        p = p->next;
    }
    printf("\n");
}

int main() {
    LinkedList list = createLinkedList(10);
    printLinkedList(list);
    return 0;
}

有啥困难?