一道数据结构题,这里r代表尾指针,h代表头结点,请问这个b选项,当p->...

发布网友 发布时间:2024-10-24 01:24

我来回答

3个回答

热心网友 时间:2024-11-06 20:38

代码这样理解:

LNode *p=h; // p指针开始时指向头结点

while(p->next!=r) p=p->next; // 这个时候的r应该是最后一个结点指针,这里判断当前指针的下一指针是否是最后指针,是就退出循环,循环退出后,那么当前指针p应该是指向倒数第二个结点。

p->next=NULL; // 因为最后结点r要删除,倒数第二结点p将变成新的最后结点,最后结点的特征就是没有下一结点,所有这里设置一下。

free(r); // 把原来的最后结点内存释放掉
r=p; // 设置新的最后结点为倒数第二结点p

热心网友 时间:2024-11-06 20:38

可以这样说,就相当于把倒数第二个节点的next设置为空,就相当于删除最后一个节点了。

热心网友 时间:2024-11-06 20:39

下一行有一个free(r)如果指针不是NULL可能会出问题
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com