代码随想录第二十一天刷题

class Solution:
    def trimBST(self, root: Optional[TreeNode], low: int, high: int) -> Optional[TreeNode]:
        if root is None:
            return None
        if root.val < low:
            return self.trimBST(root.right, low, high)
        if root.val > high:
            return self.trimBST(root.left, low, high)
        
        root.left = self.trimBST(root.left, low, high)
        root.right = self.trimBST(root.right, low, high)
        return root


# ---------- 修剪 BST ----------
# 核心:利用 BST 的有序性
#
# 三种情况:
# 1. root.val < low  → 返回修剪后的右子树
# 2. root.val > high → 返回修剪后的左子树
# 3. 在区间内 → 修剪左右子树并返回自己

今天觉得自己又行了,先是看了删除BST,然后再去修剪会简单一些

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务