采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,在课程5-1中,while循环每次都声明了一个next指针。请问这些指针是否需要回收呢?
或者更一般地,指针一般何时需要回收?
谢谢老师!
一个简单的原则就是有new才应该有delete,也就是有内存空间的申请才应该在这部分内存空间使用完毕后进行回收。
在这个问题中,传来的head指针指向了一个链表,链表中每个节点的内存空间已经申请好了。算法的任务是让你反转整个链表,返回翻转后整个链表的新的头指针返回。我们在这个算法里不能对这个链表节点的内存进行回收,如果回收了,我们返回的链表就是空了。
ListNode* reverseList(ListNode *head) { ListNode *prev = NULL; ListNode *cur = head; ListNode *next = NULL; while (cur != NULL) { next = cur->next;// (1)这步视频里面是ListNode* next = cur->next; cur->next = prev; prev = cur; cur = next; } return prev; }
波波老师好:我觉得“慕慕9414451”同学,是不是想说(1)处不要每次都初始化一个指针,虽然所占内存空间不大。但是链表如果很大很长的话,这些积累是不是还有些影响?
非常感谢老师,明白了。
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
607 13
561 12
139 11
895 10
2.0k 9