用c语言实现一个函数,将新节点插入到单向链表的尾部
时间: 2024-09-19 20:11:05 浏览: 54
在C语言中,我们可以使用结构体来表示链表节点,并定义一个函数来插入新的节点到链表的尾部。假设我们的链表节点结构如下:
```c
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
下面是一个简单的函数`insertAtEnd`,它接收一个链表的头指针和要插入的新节点的数据作为输入:
```c
void insertAtEnd(Node** head, int data) {
// 新建一个节点
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) { // 检查内存分配是否成功
printf("Memory allocation failed.\n");
return;
}
newNode->data = data;
newNode->next = NULL;
// 如果链表为空,直接将新节点设置为头结点
if (*head == NULL) {
*head = newNode;
return;
}
// 否则遍历到最后一个节点
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
// 将新节点添加到链表尾部
current->next = newNode;
}
```
这个函数首先检查内存分配,然后检查链表是否为空。如果链表不为空,则通过遍历找到最后一个节点,然后将其`next`指向新建的节点。
阅读全文