Реализация класса граф в c++
Попробовал реализовать класс граф T выдает ошибку:"NULL: идентификатор не найден"

template <class T>
class Graph;
template <class T>
class Vertex
{
private:
T data;
Vertex<T>* next;
public:
friend class Graph<T>;
Vertex(T dat, Vertex<T>* nex)
{
data = dat; next = nex;
}
};
template <class T>
class Graph
{
public:
Vertex<T>* head;
Graph() : head(NULL)
{
}
void insert(T data)
{
Vertex<T>* ptr = new Vertex<T>(data, head);
head = ptr;
}
};