- 论坛徽章:
- 0
|
本帖最后由 myzonesky 于 2013-10-08 16:39 编辑
- typedef int Status;
- typedef char ElemType;
- typedef struct Node
- {
- ElemType data;
- struct Node * next;
- } Node;
- typedef struct Node* LinkList;
复制代码- Status ListDelElem( LinkList *L, unsigned int n, ElemType *e)
- {
- LinkList p = *L;
- Node* q ;
- int j = 0;
- while( p->next != NULL && j < n )//找到第n个节点之前的那个节点,然后删掉第n个节点
- {
- p = p->next;
- j++;
- }
- if ( p->next == NULL || j > n )
- return ERROR;
- q = p->next;
- if ( q->next == NULL )
- {
- *e = q->data;
- p->next = NULL;
- free(q);
- }
- else
- {
- *e = q->data;
- p->next = q->next;
- free(q);
- q = NULL;
- return OK;
- }
-
- }
复制代码 在调试到free(q)时,出现以下问题
|
|