(1)(2)(3)这三个删除q结点的方法有什么区别啊
为什么只有(3)是对的
(3)的那个if语句是在判断什么啊?求解。
//(1)
/*
if (q != NULL)
{
q->prior->next = q->next;
q->next->prior = q->prior;
}
else
q->prior->next = NULL;
free(q);
*/
//(2)
/*
temp = q;
q = q->next;
temp->prior->next = q;
q->prior = temp->prior;
free(temp);
*/
//(3)
temp = q;
q = q->next;
temp->prior->next = q;
if (q != NULL)
{
q->prior = temp->prior;
}
free(temp);