Leetcode 669. 修剪二叉搜索树

在这里插入图片描述
可用递归法:

  1. 如果root.val小于边界值low,则root的左子树必然也小于low,只需递归处理root.right;
  2. 如果root.val大于边界值high,则root右子树必然也大于high,只需递归处理root.left ;
  3. 如果root.val在范围内,则root被保留,分别递归处理root.left和root.right。

实现代码如下:

class Solution {
   
    public TreeNode trimBST(TreeNode root, int low, int high) {
   
    	if(root==null) {
   
    		return root;
    	}
    	if(root.val<low) {
   
    		return trimBST(root.right,low,high);
    	}
    	else if(root.val>high) {
   
    		return trimBST(root.left,low,high);
    	}
    	else {
   
    		root.left=trimBST(root.left,low,high);
    		root.right=trimBST(root.right,low,high);
    	}
    	return root;
    }
}

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 20:44:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 20:44:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 20:44:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 20:44:02       20 阅读

热门阅读

  1. 《动手学深度学习(PyTorch版)》笔记4.9

    2024-01-28 20:44:02       25 阅读
  2. kingbase常用SQL总结之使用率

    2024-01-28 20:44:02       35 阅读
  3. 代码随想录算法训练营29期Day31|LeetCode 455,376,53

    2024-01-28 20:44:02       40 阅读
  4. 【 C++私房菜】模板的入门与进阶

    2024-01-28 20:44:02       32 阅读
  5. FIND_IN_SET的使用:mysql表数据多角色、多用户查询

    2024-01-28 20:44:02       36 阅读
  6. 代码随想录算法训练营29期Day32|LeetCode 122,55,45

    2024-01-28 20:44:02       38 阅读
  7. C# 使用DateTime模块判断当前时间处在哪个时段

    2024-01-28 20:44:02       29 阅读