每日一题 0224

(2022.02.24)每日一题 修剪二叉搜索树

今天上班第一天,好累!

今天都没力气思考题目。。。。

先把题解写上,大致思路差不多,但是还是没写出来。。。

2022.02.25 更新

class Solution {
public:
    TreeNode* trimBST(TreeNode* root, int low, int high) {
        //进入每一个根节点,需要去判断该根节点的值与low值和high值的关系
        //根据二叉搜索树的性质,根节点的左子树都小于根节点,根节点的右子树都大于根节点
        //根据题目意思,若根节点的值小于low值,那么根节点及其左子树都应该被修剪,同理,根节点的值大于high值,那么根节点及其右子树都该被修剪。
        if (root == nullptr) return nullptr;
        if(root->val < low){
            return trimBST(root->right,low,high);
        }

        if(root->val > high){
            return trimBST(root->left,low,high);
        }

        root->left = trimBST(root->left,low,high);
        root->right = trimBST(root->right,low,high);

        return root;
    }
};
posted @ 2022-02-24 21:25  kusola  阅读(24)  评论(0)    收藏  举报