In a linked list all item are linked, so if you delete one the linkage gets lost. So if you want to delete one, you need predecessor and the successor to successfully remove one element.
predecessor -> obsolet -> successor
predecessor -> successor
So if you scan to remove a element you need to replace the linkage. For that your code must have the predecessor and successor of a removed element.
The rest is "boiler plate" code
. Check that the buffer size is big enough for all data. Use a class (or struct) for the costumer data. It must have a predecessor and successor pointer for the deletion.