我不确定为什么我在计算二叉搜索树的高度时得到 None

I'm not sure why i am getting None when calculating height of a binary search tree

这是 class 节点和 class BinarySearchTree

的 class 定义
class Node:
    def __init__(self, val=None):
        self.val = val
        self.left = None
        self.right = None

class BinarySearchTree:
    def __init__(self):
        self.root = None

我的插入函数如下所示:

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 < curr_node.val:
        if curr_node.left is None:
            curr_node.left = Node(val)
        else:
            self._insert(curr_node.left, val)
    elif val > 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')

这是我的身高函数:

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)

当我调用高度函数时,我得到 None 作为结果

def height(self):
    if self.root is None:
        return 0
    else:
        self._height(self.root, 0)

应该是

def height(self):
    if self.root is None:
        return 0
    else:
        return self._height(self.root, 0)