双向动态释放函数,困扰了好几天,后来百度知道了下,得到大神指点,这里表示感谢。
int main(void)
{
node* NODE = CreatNode();
if (NULL == NODE)
{
printf("The NODE can't creat.\n");
exit(EXIT_FAILURE);
}
printf("%d\n", NODE->next->next->data);
//每次删除NODE后一个节点
while (NODE->next)
{
node* keepnode = NODE->next->next;
free(NODE->next);
NODE->next = keepnode;
if (NODE->next) //这里一定要判断!如果是单链表可不用。
NODE->next->pre = NODE;
}
free(NODE);
NODE = NULL;
return 0;
}