Please help me. I am stuck at this. What am I trying to do: Binary search tree. I am a C# developer and I learn C++ for about 2 weeks, therefore don't be so harsh with me and that's why pointers are still difficult for me.
I have a struct Node
struct Node
    {
        int Value;
        Node* _LeftNode;
        Node* _RightNode;
        Node(int value)
            : Value(value), _LeftNode(NULL), _RightNode(NULL)
        {
        }
    }; 
and a Delete() function in BinarySearchTree.cpp
void BinarySearchТрее::Delete(Node* node)
{
    if (node)
    {
        Delete(node->_LeftNode);
        Delete(node->_RightNode);
        delete(node);
        node = NULL;
    }
}
I want to delete the node and all of its child nodes.
When I first step in the recursion... For example:

I have two child nodes with values 10 and 19.
With recursion, I delete the nodes and set the pointers to NULL.

And here is the problem:
When I came out from the recursion the nodes are not NULL, but something strange.

And this is my problem. Why when I am in the recursion and I NULL the pointer everything is fine, but when I come out the pointer is something else.
 
     
     
     
    