- 论坛徽章:
- 0
|
void Delete_Node_value(LNode *L)
/* 删除以L为头结点的单链表中所有值相同的结点 */
{ LNode *p=L->next, *q, *ptr;
while ( p!=NULL) /* 检查链表中所有结点 */ { *q=p, *ptr=p–>next;
/* 检查结点p的所有后继结点ptr */
while (ptr!=NULL)
{ if (ptr–>data==p->data)
{ q->next=ptr->next; free(ptr);
ptr=q->next; }
else { q=ptr; ptr=ptr–>next; }
}
以上代码可行
void Delete_Node_value(LNode *L)
/* 删除以L为头结点的单链表中所有值相同的结点 */
{ LNode *p=L->next, *q, *ptr;
while ( p->next!=NULL) /* 检查链表中所有结点 */ { *q=p, *ptr=p–>next;
/* 检查结点p的所有后继结点ptr */
while (ptr!=NULL)
{ if (ptr–>data==p->data)
{ q->next=ptr->next; free(ptr);
ptr=q->next; }
else { q=ptr; ptr=ptr–>next; }
}
以上代码为什么不行呢? |
|