单链表的插入操作的实现swust
时间: 2024-03-23 19:15:36 浏览: 12
单链表的插入操作可以分为三个步骤:
1. 找到要插入的位置
2. 新建要插入的节点
3. 将新节点插入到链表中
下面是单链表插入操作的实现代码:
```
// 定义单链表节点结构体
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
ListNode* insert(ListNode* head, int val, int pos) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); // 新建要插入的节点
newNode->val = val;
newNode->next = NULL;
if (head == NULL) { // 若链表为空,新节点为头结点
return newNode;
}
if (pos <= 0) { // 若插入位置小于等于0,新节点为头结点
newNode->next = head;
return newNode;
}
ListNode* ptr = head;
for (int i = 0; i < pos-1 && ptr->next != NULL; i++) { // 找到要插入的位置
ptr = ptr->next;
}
newNode->next = ptr->next; // 将新节点插入到链表中
ptr->next = newNode;
return head;
}
```
其中,head为链表的头结点指针,val为要插入的节点的值,pos为要插入的位置。函数返回插入后的链表头结点指针。在实现中,先新建要插入的节点,然后分几种情况进行处理:
1. 若链表为空,新节点为头结点,直接返回新节点的指针。
2. 若插入位置小于等于0,新节点为头结点,将新节点插入到链表头部,并返回新节点的指针。
3. 找到要插入的位置,将新节点插入到链表中。
注意,在实现中要确保链表的下标从0开始。