給定二叉搜尋樹(bst)的根節點和要插入樹中的值,將值插入二叉搜尋樹。 返回插入後二叉搜尋樹的根節點。 輸入資料保證,新值和原始二叉搜尋樹中的任意節點值都不同。
注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。 你可以返回任意有效的結果。
給定二叉搜尋樹:
4/ \
2 7
/ \1 3
和 插入的值: 5
你可以返回這個二叉搜尋樹:
4/ \
2 7
/ \ /
1 3 5
或者這個樹也是有效的:
5/ \
2 7
/ \
1 3
\4
使用遞迴比較val和當前節點的大小,如果大在右子樹進行遞迴比較,反之在左子樹進行遞迴比較
# definition for a binary tree node.
# class treenode:
# def __init__(self, val=0, left=none, right=none):
# self.val = val
# self.left = left
# self.right = right
class solution:
def insertintobst(self, root: treenode, val: int) -> treenode:
def dfs(node, num):
if num > node.val:
right = node.right
if not right:
node.right = treenode(num)
else:
dfs(right, num)
else:
left = node.left
if not left:
node.left = treenode(num)
else:
dfs(left, num)
if not root:
root = treenode(val)
else:
dfs(root, val)
return root
leetcode 701 二叉搜尋樹中的插入操作
描述 給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。保證原始二叉搜尋樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1 3和 插入的值 5 你可以...
Leetcode 701 二叉搜尋樹的插入操作
給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。保證原始二叉搜尋樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1 3 和 插入的值 5你可以返回這...
LeetCode 701 二叉搜尋樹中的插入操作
給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料保證,新值和原始二叉搜尋樹中的任意節點值都不同。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。class solution def inse...