释放空间的问题

来源:5-2 测试你的链表程序

算法请爱我emmm

2019-07-28

int main() {
int arr[] = { 1,2,3,4,5 };
int n = sizeof(arr) / sizeof(int);

ListNode* head = creatLinkedList(arr, n);
printLinkedList(head);

ListNode* head2 = Solution().reverseList(head);  //(1) 这里是申明了一个指针变量,
                                                 //并没有new一个空间?
printLinkedList(head2);

deleteLinkedList(head2); //(2)此处一定要释放吗?

return 0;

}
(2)那里,老师视频说要释放掉空间,但是上面(1)处并没有new(申请)空间,而是申明了一个指针变量而已,这也要释放空间吗?

写回答

1回答

liuyubobobo

2019-07-28

head2 是将 head 的链表翻转了。所以 head2 中的节点都是 head 中的节点。


(2) 的位置释放的空间本质是 ListNode* head = creatLinkedList(arr, n); 中开辟的空间。(我们没有释放head)


是否一定释放?

虽然一般上机编程的话,不释放是没问题的,但是如果是笔试或者面试,对于C++语言,最好提一嘴释放空间。


继续加油!:)

0
0

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程