已知一个带有表头结点的双向循环 L ,结点结构为 prev data next, 其中 prev 和 next 分别是指向其前驱和直接后继结点的指针。现要删除 p 所指的结点,正确的操作为( ) A. p->next-> prev =p-> prev ; p-> prev ->next=p-> prev ; free(p ) B. p->next-> prev =p->next; p-> prev ->next=p->next; free(p) C. p->next-> prev =p->next p-> prev ->next=p-> prev ; free(p) D. p->next-> prev =p-> prev ; p-> prev ->next=p->next; free(p)