#include <iostream>
using namespace std;
struct Node
{
int data;
Node *next;
Node(int val)
{
data = val;
next = NULL;
}
};
void insertAtTail(Node *&head, int val)
{
Node *n = new Node(val);
Node *temp = head;
if (temp == NULL)
{
head = n;
return;
}
while (temp->next != NULL)
{
temp = temp->next;
}
temp->next = n;
}
void deleteAtTail(Node *&head)
{
Node *temp = head;
while (temp->next->next != NULL)
{
temp = temp->next;
}
delete temp->next->next;
temp->next = NULL;
}
void deleteAtHead(Node *&head)
{
Node *temp = head;
head = temp->next;
delete temp;
}
void deleteAtPos(Node *&head, int pos)
{
Node *temp = head;
Node *temp1 = NULL;
int count = 0;
while (temp != NULL && count != pos)
{
count++;
temp1 = temp;
temp = temp->next;
}
temp1->next = temp->next;
delete temp;
}
int main()
{
Node *head = NULL;
insertAtTail(head, 1);
insertAtTail(head, 2);
insertAtTail(head, 3);
deleteAtTail(head);
)