What am I doing wrong here? I'm new to linked lists and would appreciate some insight.
I am trying to add a new node in an empty list, or add a new node at the beginning if a node exists:
void insert(node* previous, int value){
if(previous == nullptr){
node* newNode = new node;
newNode->next = nullptr;
newNode->prev = nullptr;
(*head) = newNode;
(*tail) = newNode;
}else{
node* newNode = new node;
newNode->next = (*head);
newNode->prev = nullptr;
(*head)->prev = newNode;
(*head) = newNode;
}
}
class dlist {
public:
dlist() { }
struct node {
int value;
node* next;
node* prev;
};
node* head() const { return _head; }
node* tail() const { return _tail; }
private:
node* _head = nullptr;
node* _tail = nullptr;
}