二叉樹最小元素

在二叉樹中找到最小元素通常可以使用遞歸算法。以下是一個簡單的遞歸算法來找到二叉樹的最小元素:

def find_min(node):
    if node is None:
        return None
    elif node.left is None:
        return node.val
    else:
        return find_min(node.left)

# 示例
tree = TreeNode(5)
tree.left = TreeNode(2)
tree.right = TreeNode(7)
tree.left.left = TreeNode(1)
tree.left.right = TreeNode(3)

print(find_min(tree))  # 輸出應該是 1

在上面的代碼中,TreeNode 是一個簡單的類,用來表示二叉樹的節點。find_min 函數接受一個 TreeNode 作為參數,並返回該二叉樹的最小元素。如果 nodeNone,則返回 None。如果 node.leftNone,則 node.val 是我們要找的最小元素。否則,我們遞歸地調用 find_min 來查找 node.left 的最小元素。

請注意,這個算法假設二叉樹是連通的,並且至少包含一個元素。如果二叉樹是空的,則 find_min 應該返回 None