单链表删除最后一个结点的问题(请注意:我删除的是最后一个结点)

2024-12-21 11:50:17
推荐回答(2个)
回答1:

都可以。
free(q)后,p->next 不会指向NULL,而是指向一个不安全的内存地址,即悬垂指针,需要你自己赋值为NULL

回答2:

我学的是c++,删除指针用的是delete语句;不过,free()与delete的功能相似;
那么,p->next与q指向同一存储区域,在第一种做法中,因为删除了q所指向的存储区域,p->next依旧指向那一区域,但这一区域又通过q这一一途径被删除,所以可能会造成在编译过程中出现警告性错误或错误;
第二种做法正确。