注意:
链表不带头结点的链表(即链表中的第一个节点就为有数据有效节点,当链表为空链表时,list为NULL)。
如果位置i不合理,则使之成为第一个结点。
函数返回值为链表的首节点的地址。
typedef struct node
{
int data;
struct node * next;
} Node;
Node * insert(Node * list, int i, int e) {
// TODO:
}
注意:
链表不带头结点的链表(即链表中的第一个节点就为有数据有效节点,当链表为空链表时,list为NULL)。
如果位置i不合理,则使之成为第一个结点。
函数返回值为链表的首节点的地址。
typedef struct node
{
int data;
struct node * next;
} Node;
Node * insert(Node * list, int i, int e) {
// TODO:
}
供参考:
typedef struct node
{
int data;
struct node* next;
} Node;
Node* insert(Node* list, int i, int e) {
// TODO:
int j=0;
Node* pre = NULL, * p = list;
Node* newp = (Node*)malloc(sizeof(Node));
newp->data = e;
newp->next = NULL;
while (p && j < (i - 1)) {
j++;
pre = p;
p = p->next;
}
if (i <= 1 || !p){
newp->next = list;
list = newp;
}
else {
newp->next = pre->next;
pre->next = newp;
}
return list;
}