代码中的next指针是否需要回收?
来源:5-1 链表,在节点间穿针引线 Reverse Linked List
慕慕9414451
2017-11-12
老师,在课程5-1中,while循环每次都声明了一个next指针。请问这些指针是否需要回收呢?
或者更一般地,指针一般何时需要回收?
谢谢老师!
写回答
3回答
-
一个简单的原则就是有new才应该有delete,也就是有内存空间的申请才应该在这部分内存空间使用完毕后进行回收。
在这个问题中,传来的head指针指向了一个链表,链表中每个节点的内存空间已经申请好了。算法的任务是让你反转整个链表,返回翻转后整个链表的新的头指针返回。我们在这个算法里不能对这个链表节点的内存进行回收,如果回收了,我们返回的链表就是空了。
20 -
PeterSix3244453
2018-03-15
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)处不要每次都初始化一个指针,虽然所占内存空间不大。
但是链表如果很大很长的话,这些积累是不是还有些影响?042019-07-28 -
慕慕9414451
提问者
2017-11-13
非常感谢老师,明白了。
00
相似问题