template <class T> class LinkedList { private: struct Node { T data; Node *next; }; Node *head; Node *tail; int size; public: Node *iter; LinkedList(); void push_back(T& temp); void iniIter(){iter = head;} T begin() { return head->data; } T end() { return tail->data; } T Iter(){return iter->data;} }; template <class T> LinkedList<T>::LinkedList() { head=NULL; tail=NULL; iter=NULL; size=0; } template <class T> void LinkedList<T>::push_back(T& temp) { Node *newnode = new Node; newnode->data = temp; newnode->next = NULL; if (head==NULL) { head = new Node; head = newnode; tail = newnode; } else { tail->next = newnode; tail = newnode; tail->next = NULL; } size++; }