Insert Into BST

Given the root node of a valid BST and a value to insert into the tree, return a new root node representing the valid BST with the addition of the new item. If the new item already exists in the binary search tree, do not insert anything.

You must expand on the original BST by adding a leaf node. Do not change the structure of the original BST.


  • bst: a binary tree representing the existing BST.
  • val: an integer representing the value to be inserted.


A valid BST with the inserted number, or the same BST if the number already exists.


Example 1:


1tree = <See explanation>
2val = 7

Output: <See explanation>


Before insertion:

After insertion:

Try it yourself