After a quick glance, perhaps the problem is:
void setNext(node *next){ next = next; }
You assign a variable to yourself because local variables outshine instance variables. Try changing it to
void setNext(node *next){ this->next = next; }
In other notes:
As list::listyou probably do not need to be initialized headbefore new node. This will mean that your linked list will have one arbitrary node at creation, but has a length of 0. You should consider setting headto NULL.
node value. .
-1 - " " list::valueAt, node .
, list slist, , .