title: Binary Search Tree - Deleting Node with no pointer to predecessor
body: <p>I have following implementation of BST:</p>
  
  <pre><code>struct BstNode
  {
      int value;
      BstNode* leftSubnode;
      BstNode* rightSubnode;
  
      BstNode(int value)
      {
          this-&gt;value = value;
          this-&gt;leftSubnode = this-&gt;rightSubnode = nullptr;
      }
  };
  
  struct BstTree
  {
      BstNode* root;
  };
  </code></pre>
  
  <p>and you can see, that I have no pointer to predecessor (the parent of current node). I have no problem with implementing adding/displaying methods, but I can't figure out how to remove a node from my structure. Is there any possibility to do it when you have only pointers to left and right node? Please notice, that all methods should be implemented for the <code>BstTree</code> structure, not for the <code>BstNode</code> one (because of the task that I received from my teacher).</p>