title: Attempting to get the last node in a Binary Tree
body: <p>The tree is backed by a BinaryNode which store pointers to a parent, left child, and right child. I believe that I am close, but I can not get the last node.
  The tester tree I am using is:</p>
  
  <pre><code>      0
       / \
      /   \
     1     2
    / \   / 
   3   4 5 
  
  # ---------- Find the last element ----------
  
  def _find_last(self, node):           # PARAMETER node: the root of the tree
      # Start by going right
  
      if self._has_right(node):         # _has_right takes a node and returns True if there is a node
  
          node = node.get_right()       # get_right takes a node that will then return the right child
  
          self._find_last(node)
  
      # Go left if there is not a right
  
      elif self._has_left(node):         # _has_left takes a node and returns True if there is a node
  
          node = node.get_left()         # get_left takes a node that will then return the left child
  
          self._find_last(node)       
  
      return node                        # return the last node in the tree
  </code></pre>
  
  <p>I should get the node that has 5, but I end up getting the one with 2. During testing, the function does reach the node with 5, but still returns the node with 2.</p>