单链表删除最后一个结点的问题(请注意:我删除的是最后一个结点)
答案:2 悬赏:50 手机版
解决时间 2021-11-16 08:18
- 提问者网友:火车头
- 2021-11-15 18:51
单链表删除最后一个结点的问题(请注意:我删除的是最后一个结点)
最佳答案
- 五星知识达人网友:鱼芗
- 2021-11-15 20:08
都可以。
free(q)后,p->next 不会指向NULL,而是指向一个不安全的内存地址,即悬垂指针,需要你自己赋值为NULL追问那么就单纯删除最后一个结点来说:p->next=NULL;free(q);或者free(q);p->next=NULL这两种方法都对吗?追答是的
free(q)后,p->next 不会指向NULL,而是指向一个不安全的内存地址,即悬垂指针,需要你自己赋值为NULL追问那么就单纯删除最后一个结点来说:p->next=NULL;free(q);或者free(q);p->next=NULL这两种方法都对吗?追答是的
全部回答
- 1楼网友:雾月
- 2021-11-15 21:45
我学的是c++,删除指针用的是delete语句;不过,free()与delete的功能相似;
那么,p->next与q指向同一存储区域,在第一种做法中,因为删除了q所指向的存储区域,p->next依旧指向那一区域,但这一区域又通过q这一一途径被删除,所以可能会造成在编译过程中出现警告性错误或错误;
第二种做法正确。
那么,p->next与q指向同一存储区域,在第一种做法中,因为删除了q所指向的存储区域,p->next依旧指向那一区域,但这一区域又通过q这一一途径被删除,所以可能会造成在编译过程中出现警告性错误或错误;
第二种做法正确。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯