You must come from another language or be a complete beginner, but that's not a problem. I'm here to help you.
In C++, you can create a stack, and a heap variable. The differences are here:
int stack_var = 5;
int* heap_var = new int;
*heap_var = 5;
The big difference is that a heap variable is allocated with the new keyword. You must also know, that stack variables are freed automatically, when the scope ends (basically when you reach the first '}' after the allocation). But you have to delete the heap variables like this:
delete heap_var;
This will free up the memory. The main problem you have is that calling new returns a pointer. A pointer is basically a memory address. A pointer is basically the declared the same as an object, but we add an asterix (*). Like this:
Someobject object;
Someobject* pointer;
So to wrap it up, you must modify the code like this:
Node* bob = new Node();
bob->data = 1;
Node actualValue;
//This is also important!!!
delete bob;
Or this:
Node* actualValue = new Node();
delete actualValue;
I didn't mention it, but it may not be trivial for a beginner: once you delete some memory, you can't access it anymore.
Another difference between stack and heap variables:
You access members of a stack object with a dot (.) operator (stack_obj.foo = 5), while in case of pointers, with the arrow (->) operator (pointer->foo = 5)
Hope it cleared it :D