linklist怎么用?
时间: 2023-07-06 07:36:09 浏览: 70
链表的基本操作包括插入、删除、查找等。下面以单向链表为例,简单介绍链表的使用方法:
首先,定义链表节点的结构体,包括数据域和指向下一个节点的指针域。例如:
```
struct ListNode {
int val;
struct ListNode *next;
};
```
然后,创建链表时需要定义一个头节点,它的指针域为空。例如:
```
struct ListNode *head = malloc(sizeof(struct ListNode));
head->next = NULL;
```
接下来,就可以往链表中插入节点了。比如,可以在头节点之后插入一个新节点:
```
struct ListNode *newNode = malloc(sizeof(struct ListNode));
newNode->val = 1;
newNode->next = head->next;
head->next = newNode;
```
删除节点时,需要找到要删除的节点的前一个节点,然后将它的指针域指向下一个节点。例如,删除第一个节点:
```
struct ListNode *toBeDeleted = head->next;
head->next = toBeDeleted->next;
free(toBeDeleted);
```
查找节点时,需要从头节点开始遍历链表,直到找到目标节点或遍历到链表末尾。例如,查找值为 1 的节点:
```
struct ListNode *p = head->next;
while (p != NULL) {
if (p->val == 1) {
// 找到了
break;
}
p = p->next;
}
if (p == NULL) {
// 没找到
}
```