# Leetcode 669 - Trim a BST

`Note:`

- Look out cases in which we need to keep trimming a subtree.
- Recursion:
- Return value is a node, so base case is
`return null`

and result is`return root`

. - Techniques we learned:
`root.left = recur(...)`

,`root.right = recur(...)`

.

- Return value is a node, so base case is

Given the `root`

of a binary search tree and the lowest and highest boundaries as `low`

and `high`

, trim the tree so that all its elements lies in [low, high]. Trimming the tree should not change the relative structure of the elements that will remain in the tree (i.e., any node’s descendant should remain a descendant). It can be proven that there is a `unique answer`

.

Return the root of the trimmed binary search tree. Note that the root may change depending on the given bounds.

**Example:**

1 | Input: root = [3,0,4,null,2,null,null,1], low = 1, high = 3 |

1 | /** |