c语言中如何在链表头节点前插入节点
时间: 2023-06-11 21:04:28 浏览: 110
C语言 在链表的指定位置插入节点
5星 · 资源好评率100%
在链表头节点前插入一个新节点,可以按照以下步骤操作:
1. 创建一个新节点,并将新节点的指针指向链表头节点的地址。
2. 将链表的头指针指向新节点的地址。
下面是一个示例代码,展示如何在链表头节点前插入一个新节点:
```c
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
void insertAtHead(struct ListNode **head, int val) {
struct ListNode *newNode = malloc(sizeof(struct ListNode));
newNode->val = val;
newNode->next = *head;
*head = newNode;
}
void printList(struct ListNode *head) {
struct ListNode *curr = head;
while (curr) {
printf("%d ", curr->val);
curr = curr->next;
}
printf("\n");
}
int main() {
struct ListNode *head = NULL;
insertAtHead(&head, 3);
insertAtHead(&head, 2);
insertAtHead(&head, 1);
printList(head);
return 0;
}
```
在上面的代码中,我们定义了一个链表结构体 `ListNode`,包含一个值 `val` 和一个指向下一个节点的指针 `next`。然后我们定义了一个 `insertAtHead` 函数,在其中创建一个新节点,并将新节点的指针指向链表头节点的地址,最后将链表头指针指向新节点的地址。最后,我们定义了一个 `printList` 函数来打印整个链表,供我们测试时使用。
阅读全文