Following delete function can be used to delete n-th node from singly linked list. Funtion is written in C.
int delete(node * head, int key) { node * p, * q; int x = 0; p = head; if (p == Null) { printf(“List is empty”); return 0; } else while (p != null && p - > data != key) { q = p; p = p - > next; } if (p == head) { x = key; head = (head) - > next; free(p); } else { If(p - > data == key) { x = p - > data; q - > next = p - > next; free(p); } } } return (x);