#include using namespace std; template class Node{ public: T data; Node* next; Node(T data, Node* next) : data(data), next(next){} }; template class LinkedList{ Node* head; int size; public: LinkedList(T data){ head = new Node(data, nullptr); size = 1; } void insertAtHead(T data){ insertAtPosition(0, data); } bool insertAtPosition(int position, T data){ if(position < 0 || position > size) return false; Node* newNode = new Node(data, head); if(position == 0){ head = newNode; } else{ for(int i=0;inext = newNode->next->next; } Node* temp = newNode->next; newNode->next = newNode->next->next; temp->next = newNode; } size++; return true; } void printList(){ Node* temp = head; while(temp != nullptr){ cout<data; temp = temp->next; } } }; int main(){ LinkedList list(1); list.insertAtPosition(0, 1); list.insertAtPosition(1, 3); list.insertAtPosition(3,5); list.printList(); return 0; }