📅  最后修改于: 2023-12-03 15:39:19.911000             🧑  作者: Mango
当我们要添加元素到链表中时,我们需要通过指针来进行操作。在链表没有元素的情况下,我们需要将新元素作为链表的第一个元素来添加。下面是一个简单示例,演示了如何将第一个元素添加到链表中。
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
void addFirst(struct node **head, int data) {
struct node *newNode = (struct node*) malloc(sizeof(struct node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
int main() {
struct node *head = NULL;
// 添加第一个元素
addFirst(&head, 1);
// 输出当前链表
struct node *current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
return 0;
}
我们首先需要声明一个链表节点的结构体,包含了数据和指向下一个节点的指针。
struct node {
int data;
struct node *next;
};
使用双重指针,我们可以修改指向头结点的指针,从而在链表的开头添加一个新的节点。
void addFirst(struct node **head, int data) {
struct node *newNode = (struct node*) malloc(sizeof(struct node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
int main() {
struct node *head = NULL;
// 添加第一个元素
addFirst(&head, 1);
// 输出当前链表
struct node *current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
return 0;
}
1
在链表没有元素的情况下,我们需要将新元素作为链表的第一个元素来添加。这可以通过使用双重指针来实现,在头结点的前面插入新节点。该示例代码演示了如何将第一个元素添加到链表中。