LeetCode - Tree - Trim Binary Tree Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that all its elements lies in [L, R] (R >= L). You might need to change the root of the tree, so the result should return the new root of the trimmed binary search tree. Example 1: Input: 1 / \ 0 2 L = 1 R = 2 Output: 1 \ 2 Example 2: Input: 3 / \ 0 4 \ 2 / 1 L = 1 R = 3 Output: 3 / 2 / 1 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode trimBST(TreeNode root, int L, int R) { if(root == null) return null; if(root.val<L || root.val>R ){ if(root.val<L && root.val<R){ root = trimBST(root.right,L,R); } else if(root.val>L && root.val>R){ root = trimBST(root.left,L,R); }else{ root = null; } }else{ root.left = trimBST(root.left,L,R); root.right = trimBST(root.right,L,R); } return root; } }