算法的思想就是:把P的前驱结点接上P的后继节点。然后P的后继节点的前驱节点指向P的前驱节点。这个时候P就被架空了。此时释放P.
代码:
void DDeleteNode(DListNode *p){
//假设*P非最后的尾结点
p->prior->next = p->next;//P的前置节点的后继节点指向P的后继节点
p->next->prior = p->prior;//P的后置节点的前驱节点指向P的前驱节点
free(p);//释放P
}
算法的思想就是:把P的前驱结点接上P的后继节点。然后P的后继节点的前驱节点指向P的前驱节点。这个时候P就被架空了。此时释放P.
代码:
void DDeleteNode(DListNode *p){
//假设*P非最后的尾结点
p->prior->next = p->next;//P的前置节点的后继节点指向P的后继节点
p->next->prior = p->prior;//P的后置节点的前驱节点指向P的前驱节点
free(p);//释放P
}