Friday, June 3, 2022

669. Trim a Binary Search Tree

 一刷 05/2022

Version #1 Recursion


Time O(N)

Space O(N) system stack for recursion

Runtime: 0 ms, faster than 100.00% of Java online submissions for Trim a Binary Search Tree.
Memory Usage: 45.7 MB, less than 6.02% of Java online submissions for Trim a Binary Search Tree.

/**

 * Definition for a binary tree node.

 * public class TreeNode {

 *     int val;

 *     TreeNode left;

 *     TreeNode right;

 *     TreeNode() {}

 *     TreeNode(int val) { this.val = val; }

 *     TreeNode(int val, TreeNode left, TreeNode right) {

 *         this.val = val;

 *         this.left = left;

 *         this.right = right;

 *     }

 * }

 */

class Solution {

    public TreeNode trimBST(TreeNode root, int low, int high) {

        if (root == null) {

            return null;

        }

        if (root.val >= low && root.val <= high) {

            root.left = trimBST(root.left, low, high);

            root.right = trimBST(root.right, low, high);

            return root;

        }

        if (root.val > high) {

            return trimBST(root.left, low, high);

        } else {

            return trimBST(root.right, low, high);

        }

    }

}

No comments:

Post a Comment