【发布时间】:2014-05-21 01:51:30
【问题描述】:
我有一个作业问题是:
Destructor_Helper 是一个递归函数,用于释放单链表的每个节点。为 destructor_helper 编写方法定义。
struct Node
{
string data;
Node *next;
}
void List::~List() {
destructor_helper(head);
}
我的回答是:
void Destructor_Helper(Node *n) {
cout<< n->data << endl;
if (n->next != NULL)
Destructor_Helper(n->next);
}
我的答案算错了,有人能帮我找出问题所在吗?
【问题讨论】:
-
提示:你在哪里取消分配?
-
它实际上并没有删除任何东西。
-
所以通过添加“delete n;”函数正确吗?
-
不删除就不能正确。通过添加删除,并正确地做事,它会是正确的。如何做对,这就是任务的全部内容。
-
是的。你为什么不试试呢?拿一支铅笔,用喜欢的列表中的 3 个元素绘制一个简单的案例,解决方案将变得显而易见。
标签: c++ recursion data-structures