669. Trim a Binary Search 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

给出的是二叉搜索树,先复习下什么是二叉搜索树

- 1.也就说一个根节点只有两个子树

- 2.左子树 < 根节点 < 右子树

题目的大概意思就是删除`[L, R]`范围外的节点

/**
* 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 || L > R) return null;  //递归的出口
        if(root.val < L)return trimBST(root.right,L,R);
        if(root.val > R)return trimBST(root.left,L,R);
        root.left = trimBST(root.left,L,R);
        root.right = trimBST(root.right,L,R);
        return root;
    }
}
时间: 2024-10-10 20:38:38

669. Trim a Binary Search Tree的相关文章

669. Trim a Binary Search Tree (Easy)

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

669. Trim a Binary Search 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

669. Trim a Binary Search 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

[leetcode]669. Trim a Binary Search Tree寻找范围内的二叉搜索树

根据BST的特点,如果小于L就判断右子树,如果大于R就判断左子树 递归地建立树 public TreeNode trimBST(TreeNode root, int L, int R) { if (root==null) return null; if (root.val<L) return trimBST(root.right,L,R); if (root.val>R) return trimBST(root.left,L,R); TreeNode res = new TreeNode(ro

LeetCode 669. 修剪二叉搜索树(Trim a Binary Search Tree)

669. 修剪二叉搜索树 669. Trim a Binary Search Tree 题目描述 LeetCode LeetCode669. Trim a Binary Search Tree简单 Java 实现 TreeNode Class public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } class Solution { public TreeNode

[LeetCode] Trim a Binary Search 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

[LeetCode] Trim a Binary Search 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

Tree-669. Trim a Binary Search 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

[leetcode]Tree-669. Trim a Binary Search 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