struct Node { int data; struct Node *pre; struct Node *next; }; typedef struct Node* dlink; dlink deleteNode(dlink head ,dlink node) { if(node->pre==NULL) { head=head->next; head->pre=NULL; } else { if(node->next==NULL) node->pre->next=NULL; else { node->pre->next=node->next; node->next->pre=node->pre; } } free(node); return head; }