Step1: first check the head status, if head status is NULL then it is EMPTY LIST, so no need to perform any task.
Step2: if head status is other then NULL then,
Get node count value.
Get node position value to perform delete operation.
Validate node position value, if valid position, then go for further process.
Step3: if node count value is 1. Then process following steps
De-allocate memory for head.
Assign NULL value to head
Step4: if node position is 1, then processing following steps
Create a temporary head i.e. th1 and assign current head value to th1.
Shift the current head to next node i.e. head = head->next;
Remove next node relation with temporary head i.e. th1->next=NULL.
De-allocate memory of temporary head. i.e.th1.
Step5: if node position value is other then 1, then process following steps
Take a temporary head i.e. th1 and assign current head value to th1.
Create a loop and travel up to link position-1.
Step6: Create another temporary head i.e. th2 and assign previous node next address to th2. i.e. th2=th1->next.
Assign previous node next value to current node next value i.e. th1->next=th2->next.
Remove next node relation with temporary head i.e. th2->next=NULL.
De-allocate memory for temporary head. i.e th2.