0
A
回答
3
任何一种顺序都是可能的 - 唯一可以确定的方法是检查您使用的具体实现。
一般来说,对于一个单向链表,我希望第一个到最后一个排序,因为它更容易实现,有点更有效:
LinkedList::~LinkedList()
{
Node *node = mHead;
while (node) {
Node *next = node->mNext;
delete node;
node = next;
}
}
对战最后到第一排序,这对于一个单向链表通常需要某种形式的递归:如此反复
void deleteList(Node *node)
{
if (node == 0) {
return;
}
deleteList(node->mNext);
delete node;
return;
}
LinkedList::~LinkedList()
{
deleteList(mHead);
}
- 可以肯定的唯一方式是看你的链接列表实现。
1
我想,因为编译器读取代码。从上到下,析构函数从第一个到最后一个删除。你甚至可以使用{} |以确保在通常发生之前重新分配内存。
相关问题
- 1. java删除节点链表
- 2. 删除链表的节点在递归函数
- 3. 在析构函数中删除IBuffers
- 4. 删除[]析构函数
- 5. 删除每三个节点在链表
- 6. 删除圆形链表中的节点
- 7. 删除链接列表中的节点
- 8. 从链接列表中删除节点
- 9. 如何从链表中删除节点?
- 10. 从双向链表中删除节点?
- 11. 从单向链表中删除节点
- 12. 如何从链表中删除节点?
- 13. 删除链接列表中的节点
- 14. 析构函数的链表
- 15. 从链表中删除偶数但不在尾节点工作?
- 16. 链表节点删除功能
- 17. 链接列表删除节点后根
- 18. 两个单链接-列表共享相同的节点&析构函数删除同一存储器两次
- 19. GCC内部结构:删除了哪些假解除?
- 20. 从Java中的链接列表中删除奇数int节点
- 21. 在自我链接模型中,删除父节点时删除子节点
- 22. E4X删除节点,其中一些在节点等于什么
- 23. 最好的方法来得知哪个节点在链表中被删除?
- 24. 在C++中删除链接列表中的节点
- 25. 在C++中删除指针数组时,析构函数崩溃了
- 26. 删除析构函数调用内
- 27. 标量删除析构函数
- 28. 在双向链表中的给定节点之后删除节点
- 29. 如何在链表中删除一个节点?
- 30. 如何在打印内容后从链表中删除节点?