二叉樹最小元素
在二叉樹中找到最小元素通常可以使用遞歸算法。以下是一個簡單的遞歸算法來找到二叉樹的最小元素:
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
作為參數,並返回該二叉樹的最小元素。如果 node
為 None
,則返回 None
。如果 node.left
為 None
,則 node.val
是我們要找的最小元素。否則,我們遞歸地調用 find_min
來查找 node.left
的最小元素。
請注意,這個算法假設二叉樹是連通的,並且至少包含一個元素。如果二叉樹是空的,則 find_min
應該返回 None
。