如下程序的功能为对于非降序链表删除数据域内容相同的结点,使之只保留一个,在下划线处需要分别填入的正确内容为( )。 struct node { int data; struct node * next; } purge(struct node * head) { struct node * p, *q; q=head->next; if(q==NULL) return; p=q->next; while( p!=NULL) { if(p->data==q->data) { ____; free(p); p=q->next; } else{ q=p; ____; } } }