This is not really C++.
ItsIt is just some C code.
In C++ it is common convention, that names of objectobjects (anything that can have its address taken) begins with a lower case letter (this includes function/method and method names). So I would rename Remove
to remove()
. This is so it is easyeasier to spot the names of user defined types (which should begin with an upper case letters).
By the way;way, why a singly linked list.? That sounds like a premature optimization to me. Code is much simplified bysimpler using a doubly linked list (with a sententialsentinel). Of course you are writing in C so you are probably trying to write optimal code down as close to the metal with no help from language semantics.
Double indirection is horrible. ItsIt is hard to read and hard to use in the code. If you want to pass something that needs to be updated pass a reference to the object. Then it will be updated in the function.
A simple technique for traversing a singly linked list is to use two pointers. A pointer to the current element and a pointer to the previous element. Unlink-ingUnlinking the element then becomes a simple assignment to the previous element.