数据结构初学者。希望用C++,采用头插法来构建一个单链表。
我看好多博客的作者在新建一个结点时,使用new之后,却不delete(具体见函数:linkListHead)。
按我现在的理解,这样不是会造成内存泄露吗?该怎么解决呢?
#include<iostream>
using namespace std;
struct node
{
int ele;
node* next;
};
void linkListHead(node* L);
int main()
{
node* head = new node;
head->ele = 4; // 头结点的数据域存放结点的长度
head->next = NULL;
linkListTail(head);
while (head)
{
cout << head->ele << " ";
head = head->next;
}
delete head;
return 0;
}
void linkListHead(node* L)
{
for ( int i = 1; i <= L->ele; i++)
{
node* newNode = new node; // new之后,不需要delete吗?但是delete之后,该结点所占的内存也销毁了呀,这样就达不到构建单链表的目的了呀。怎么解决呀?
newNode->ele = i;
newNode->next = L->next;
L->next = newNode;
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…