I was implementing a LinkedList using C++, and I seem to have forgotten a few things when dealing with dynamically allocated memory.

I have a node class:

```
class Node {    
  public:
  Node(int d) {
    data = d;
    next = NULL;
  }

  Node(int d, Node* n) {
    data = d;
    next = n;   
  }

  int data;
  Node* next;
};

```

and in my LinkedList class, I have the following method:

```
void remove(int n) {
    Node* current;
    current = head;
    Node* previous = NULL;

    while ( current->data != n && current->next != NULL)  {

        previous = current;
        current = current->next;
    }

    if (current->data == n) {
        previous->next = current->next;
        current->next = NULL;
        delete current;
    }
    else {
        std::cout << "Node not found" << std::endl;
    }
}

```

I seem to have forgotten..When I do `delete current` does that delete the `Node` ? Like the actual object that the pointer `current` points to? Or does it just delete the pointer? Or does the deletion of a pointer pointing to dynamically allocated memory using `delete` delete both the pointer and the object? Or do I need to have defined a Node class destructor for that?