這題是一題類似於 2-3 樹中的插入操作,這道題可以用來理解如何保持樹的平衡。
在一棵**二叉搜索樹(BST)**中插入一個節點,並返回插入後的樹。
二叉搜索樹的性質:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def insertIntoBST(root: TreeNode, val: int) -> TreeNode:
if not root:
return TreeNode(val) # 當遇到空位時插入新節點
if val < root.val:
root.left = insertIntoBST(root.left, val) # 遞歸插入到左子樹
else:
root.right = insertIntoBST(root.right, val) # 遞歸插入到右子樹
return root