//Version 1
template <typename T>
class Node<T> {
private:
T data;
Node *next;
public:
Node(T data) {
this->data = data;
this->next = NULL;
}
};
//Version 2
template <typename T>
class Node {
private:
T data;
Node *next;
public:
Node(T);
};
template <typename T>
Node<T>::Node(T val) {
data = val;
next = NULL;
}
//Version 1
template <typename T>
c