669. Trim a Binary Search Tree

Posted Wanna_Go

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }
}

 

 
 

以上是关于669. Trim a Binary Search Tree的主要内容,如果未能解决你的问题,请参考以下文章

669. Trim a Binary Search Tree

[leetcode-669-Trim a Binary Search Tree]

LeetCode 669. Trim a Binary Search Tree

Leetcode 669. Trim a Binary Search Tree

669. Trim a Binary Search Tree (Easy)

Tree-669. Trim a Binary Search Tree