本题要求实现一个函数,建立一个链表,返回头指针(即头节点地址) head是链表的头指针,链表上节点的定义如下: struct node {char ch; struct node * next;} 链表上节点的数据成员ch按顺序赋值0,1,2,3......至n-1
时间: 2023-12-14 22:37:55 浏览: 174
好的,让我来回答你的问题。你需要实现如下的函数:
```c
struct node *createLinkedList(int n)
```
其中,n代表需要创建链表的节点数,函数返回一个指向链表头部的指针。
下面是函数的具体实现:
```c
struct node *createLinkedList(int n) {
struct node *head = NULL; // 初始化头指针为空指针
struct node *curNode = NULL; // 当前指针为空指针
for (int i = 0; i < n; ++i) {
struct node *newNode = (struct node*) malloc(sizeof(struct node)); // 创建一个新节点
newNode->ch = i; // 设置节点数据成员
newNode->next = NULL; // 初始化节点指针为为空指针
if (head == NULL) { // 如果头指针为空,则将头指针指向新节点
head = newNode;
curNode = head;
} else { // 否则将当前指针的下一节点指向新节点
curNode->next = newNode;
curNode = curNode->next;
}
}
return head; // 返回头指针
}
```
注意,函数中使用了动态内存分配来创建新节点,需要在使用完节点后及时释放内存。同时,在创建链表时需要注意头节点的初始化。
阅读全文