Su due piedi e senza aver mai trattato nel particolare funzioni di questo tipo..

bool Pop ( LIST **h, LIST **n)
{

LIST *testa;
LIST *tmp;

testa = *h;

if(( testa != NULL ) && (testa->next !=testa->next))
{
*n = testa;
*h = testa->Next;
tmp = testa->back;
tmp -> next = testa-> next;
tmp = testa->next;
tmp ->back = testa->back;
testa->back = NULL;
testa->Next = NULL;
}
else if (testa != NULL)
{
*n = testa;
*h = NULL;
}
else
return 0;

return 1;
}

Di sicuro può essere ottimizzato
Controlla potrei aver sbagliato...