diff --git a/python/669-Trim-a-Binary-Search-Tree.py b/python/669-Trim-a-Binary-Search-Tree.py new file mode 100644 index 000000000..5d6a5d90e --- /dev/null +++ b/python/669-Trim-a-Binary-Search-Tree.py @@ -0,0 +1,21 @@ +# 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 trimBST(self, root: Optional[TreeNode], low: int, high: int) -> Optional[TreeNode]: + if not root: + return None + + if root.val > high: + return self.trimBST(root.left, low, high) + + if root.val < low: + return self.trimBST(root.right, low, high) + + else: + root.left = self.trimBST(root.left, low, high) + root.right = self.trimBST(root.right, low, high) + return root \ No newline at end of file