669. 修剪二叉搜索树

思路

二叉搜索树(BST)的修剪功能。通过递归遍历树节点,移除所有值不在给定范围[low, high]内的节点。对于小于low的节点,保留其右子树;对于大于high的节点,保留其左子树。算法处理了根节点可能被移除的特殊情况,并重新连接父节点与保留的子树。最终返回修剪后的BST根节点,确保所有节点值都在指定范围内。

代码

cpp 复制代码
class Solution {
public:
    int l,h;
    TreeNode* r;
    int qx(TreeNode* a,TreeNode* syc,bool f) {
        if(!a) {
            return 0;
        }
        qx(a->left,a,0);
        qx(a->right,a,1);
        if(a->val<=l) {
            a->left=nullptr;
            if(a->val<l) {
                if(a==r) {
                    r=a->right;
                }
                else {
                    if(syc) { 
                        if(f) {
                            syc->right=a->right;
                        }
                        else {
                            syc->left=a->right;
                        }
                    }
                }          
            }
        }
        else {
            if(a->val>=h) {
                a->right=nullptr;
                if(a->val>h) {
                    if(a==r) {
                        r=a->left;
                    }
                    else {
                        if(syc) { 
                            if(f) {
                                syc->right=a->left;
                            }
                            else {
                                syc->left=a->left;
                            }
                        }
                    }       
                }
            }   
        }     
        return 0;
    }
    TreeNode* trimBST(TreeNode* root, int low, int high) {
        l=low;
        h=high;
        r=root;
        qx(r,nullptr,0);
        return r;
    }
相关推荐
敲代码的嘎仔1 分钟前
力扣高频SQL基础50题详解
开发语言·数据库·笔记·sql·算法·leetcode·后端开发
小虎牙0078 分钟前
面试被问复杂度总懵?这篇指南帮你彻底搞清
算法
knight_9___1 小时前
大模型project面试4
人工智能·python·深度学习·算法·面试·agent
l1t1 小时前
DeepSeek总结的欢迎来到 ORDER BY 丛林
数据库·算法
谙弆悕博士1 小时前
【附C源码】二叉搜索树的C语言实现
c语言·开发语言·数据结构·算法·二叉树·项目实战·数据结构与算法
宵时待雨2 小时前
回溯算法专题2:二叉树中的深搜
开发语言·数据结构·c++·笔记·算法·深度优先
刀法如飞2 小时前
JavaScript 数组去重的 20 种实现方式,学会用不同思路解决问题
前端·javascript·算法
洛水水2 小时前
【力扣100题】46.单词拆分
算法·leetcode·职场和发展
MicroTech20252 小时前
量子安全赋能协同智能,微算法科技(NASDAQ :MLGO)研发PQS-BFL后量子区块链联邦学习框架
科技·算法·安全
平行侠3 小时前
A19 工业设备故障决策树智能诊断系统
算法·决策树·机器学习