title: I'm not sure why i am getting None when calculating height of a binary search tree
body: <p><strong>Here are the class definitions for class Node and class BinarySearchTree</strong></p>
  <pre><code>class Node:
      def __init__(self, val=None):
          self.val = val
          self.left = None
          self.right = None
  
  class BinarySearchTree:
      def __init__(self):
          self.root = None
  </code></pre>
  <p>My insert function looks like this:</p>
  <pre><code>def insert(self, value):
      if self.root is None:
          self.root = Node(value)
      else:
          self._insert(self.root, value)
  
  def _insert(self, curr_node, val):
      if val &lt; curr_node.val:
          if curr_node.left is None:
              curr_node.left = Node(val)
          else:
              self._insert(curr_node.left, val)
      elif val &gt; curr_node.val:
          if curr_node.right is None:
              curr_node.right = Node(val)
          else:
              self._insert(curr_node.right, val)
      else:
          print('Value already exist')
  </code></pre>
  <p>Here is my height function:</p>
  <pre><code>def height(self):
      if self.root is None:
          return 0
      else:
          self._height(self.root, 0)
  
  def _height(self, curr, height):
      if curr is None:
          return height
      left_height = self._height(curr.left, height+1)
      right_height = self._height(curr.right, height + 1)
      return max(left_height, right_height)
  </code></pre>
  <p>When I call the height function I get None as the result</p>