python 二叉樹遞歸時明明已經得到了結果,但是返回None

得到二叉樹的最小值時,原來的代碼是:

def get_min_node(node: AVLTreeNode):
    temp_node = node
    if temp_node.left is not None:
        get_min_node(temp_node.left)
    else:
        return temp_node

# test
min_node = get_min_node(root)

但是調試時明明 reture temp_node 的時候已經有了正確結果,但是 min_node 數據類型是 NoneType

這裏的原因是函數內遞歸時是沒有返回值的,因此改爲:

def get_min_node(node: AVLTreeNode):
    temp_node = node
    if temp_node.left is not None:
        return get_min_node(temp_node.left)
    else:
        return temp_node

這樣就可以得到正確答案了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章