在单链表的第i个位置插入x的c语言代码
时间: 2023-05-15 10:06:02 浏览: 104
下面是在单链表的第i个位置插入x的C语言代码:
```c
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* insert(struct ListNode* head, int i, int x) {
struct ListNode *newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = x;
newNode->next = NULL;
if (i == 1) {
newNode->next = head;
head = newNode;
} else {
struct ListNode *p = head;
int j = 1;
while (p != NULL && j < i - 1) {
p = p->next;
j++;
}
if (p == NULL) {
printf("Error: Invalid position\n");
} else {
newNode->next = p->next;
p->next = newNode;
}
}
return head;
}
```
这段代码可以在单链表的第i个位置插入值为x的节点。如果i等于1,则在头部插入;否则,遍历链表找到第i-1个节点,然后在它后面插入新节点。如果i的值不合法,则输出错误信息。
阅读全文