Just adding to above points, You are trying to delete a NULL pointer which is not correct
node*temp2=new node;
temp2->data=4;
temp2->link=temp5;
temp2=Head;//Head will be NULL here as you have not assigned any thing here.
delete temp2;//Here you are trying to delete NULL.
Adding Some sample code for reference:
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Node
{
int Data;
Node* Link;
friend class LinkedList;
};
class LinkedList
{
private:
Node* _head;
Node* GetNewNode(int value, Node* next)
{
Node* newNode = new Node();
if (newNode != NULL)
{
newNode->Data = value;
newNode->Link = next;
}
return newNode;
}
public:
LinkedList()
{
_head = NULL;
}
void Insert(int value, Node* next)
{
Node* newNode = GetNewNode(value, next);
if (newNode != NULL)
{
if (_head == NULL)
{
_head = newNode;
}
else
{
Node* temp = NULL;
temp = _head;
_head = newNode;
Node* travereList = NULL;
travereList = newNode;
while (travereList->Link != NULL)
{
travereList = travereList->Link;
}
travereList->Link = temp;
}
}
}
Node* GetHead()
{
return _head;
}
};
void Print(LinkedList* l)
{
if (l != NULL)
{
Node* temp = NULL;
temp = l->GetHead();
while (temp != NULL)
{
cout << temp->Data << endl;
temp = temp->Link;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
LinkedList l;
l.Insert(10, NULL);
l.Insert(20, NULL);
l.Insert(30, NULL);
l.Insert(40, NULL);
l.Insert(50, NULL);
Print(&l);
getchar();
return 0;
}
Thanks And Regards
Sravan Vurapalli