代码如下:
Node * initList() {
Node *head;
head = (Node *)malloc(sizeof(Node*)); /*给头指针分配空间*/
head -> data = NULL;
head -> next = NULL;
return head;
}
void addNode(Node *head, int data) {
Node *p = (Node*)malloc(sizeof(Node*));
p -> data = data;
while(head -> next) {
head = head -> next;
}
head -> next = p;
p -> next = NULL;
}
Node* listDelete(Node *head, int i) {
int n = 0;
Node *del = NULL;
Node *p = NULL;
if(i >= listLength(head) || inext;
} else {
p = head;
while(nnext;
n++;
}
del = p -> next;
if(p -> next -> next) {
p -> next = p -> next -> next;
} else {
p -> next =NULL;
}
}
free(del);
del = NULL;
return head;
}
void main() {
Node *p = NULL;
int i = 0;
p = initList();
p -> data = 1;
addNode(p, 2);
addNode(p, 3);
addNode(p, 4);
addNode(p, 5);
p = listDelete(p, 1);
printf("---------------------------------->\n");
while(getElem(p, i)) {
coutdata << endl;
i++;
}
}
执行到free函数时报错如图:
求高手帮忙!
|