title: Find the successor without using parent pointer
body: <p>The successor of an element in a BST is the element's successor in the sorted order determined by the inorder traversal. Finding the successor when each node has a pointer to its parent node is presented in CLRS's algorithm textbook (Introduction to Algorithms by MIT press).</p>
  
  <p>The idea to find the successor here is - if the right subtree of node <code>x</code> is nonempty, the successor of <code>x</code> is the minimum element in the right subtree. Otherwise, the successor is the lowest ancestor of <code>x</code> whose left child is also an ancestor of <code>x</code> (assuming a node is an ancestor of itself).</p>
  
  <p>Can we find the successor without using the pointer to the parent node?</p>
  
  <p>Sometimes our tree node does not have this pointer. I struggled a couple of hours but cannot write the correct code. </p>