已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。

且所有结点都已具有如下形式的结构定义:
struct node

    int data;
    struct node *next;
}*p,*q;
则下面语句序列的功能是

while(p->next->next != NULL)
{
  p = p->next;
}
free(p->next);
p->next = NULL;

A、删除链表的尾结点
B、

删除p结点


C、删除q结点
D、删除p的前驱结点