詳細については、701 を参照してください。 二分探索木の挿入操作
問題解決のアイデア
- BST 機能。root.val と val のサイズを判断します。root.val < val、val を root.right に配置する必要があることを示します。
- 逆にroot.leftに置き、root.rightが存在するかどうかを判断し、存在する場合は直接置き、そうでない場合は再帰的に関数を挿入し、適切な位置を見つける
# 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:
if not root:
return TreeNode(val)
def insert(root):
if root.val < val:
if root.right:
insert(root.right)
else:
root.right = TreeNode(val)
else:
if root.left:
insert(root.left)
else:
root.left = TreeNode(val)
insert(root)
return root