·

->箭头运算符的左操作数必须是一个指针,它指向一个结构或联合类型,所以p和q都是指针

一般情况下,在你代码中的while循环结束时,指针p已经指向了单链表中将要删除的节点的前一个节点,所以p->next就是将要删除的节点

q=p->next,那么指针q就指向了将要删除的节点

接下来,让将要删除的节点的前一个节点的下一个节点不再是将要删除的节点,而是将要删除的节点的下一个节点,即p->next=q->next

这时删除操作已经完成,然后再通过指针q来找到已被删除的节点中的数据,即q->data