思路:既然是递增有序,那么重复的元素一定是紧挨着一起的。
方法:遍历单链表,检查后继节点是否和自己相同,相同则删除后继节点,否则继续遍历
出口:没有节点或者只有一个节点的情况下直接return
LinkList DeleteSame(LinkList L) {
if (L == NULL||L->next==NULL)return L;
LNode*p = L,*q=p;
while (p)
{
q = p->next;
if (q && (p->data == q->data)) {
p->next = q->next;
free(q);
}
else p = p->next;
}
return L;
}
void twelve() {
LinkList L = NULL;
L = List_TailInsert(L);
//去掉递增有序的线性表中重复的元素
L = DeleteSame(L);
List_Print(L);
}
int main()
{
twelve();
}