代码随想录算法训练营Day21 | 669. 修剪二叉搜索树 | 108.将有序数组转换为二叉搜索树 | 538.把二叉搜索树转换为累加树

今日任务

669. 修剪二叉搜索树

  • 题目链接: https://leetcode.cn/problems/trim-a-binary-search-tree/description/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    TreeNode* trimBST(TreeNode* root, int low, int high) {
        if(root == nullptr){
            return root;
        }
        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;
    }
};

108.将有序数组转换为二叉搜索树

  • 题目链接: https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {

        function<TreeNode *(int , int)> dfs = [&](int low, int high) -> TreeNode *{
            if(low > high){
                return nullptr;
            }
            int mid = low + (high - low) / 2;
            TreeNode *left = dfs(low, mid - 1);
            TreeNode *right = dfs(mid + 1, high);
            return new TreeNode(nums[mid], left, right);
        };
        return dfs(0, nums.size() - 1);
    }
};

538.把二叉搜索树转换为累加树

  • 题目链接: https://leetcode.cn/problems/convert-bst-to-greater-tree/description/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    TreeNode* convertBST(TreeNode* root) {
        int sum = 0;
        function<void(TreeNode *)> dfs = [&](auto node)->void{
            if(node == nullptr){
                return;
            }
            dfs(node->right);
            sum += node->val;
            node->val = sum;
            dfs(node->left);
        };
        dfs(root);
        return root;
    }
};

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 10:04:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 10:04:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 10:04:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 10:04:04       68 阅读

热门阅读

  1. Mybatis SQL注解使用场景

    2024-07-12 10:04:04       16 阅读
  2. python 缩放照片

    2024-07-12 10:04:04       24 阅读
  3. 谈一谈徒劳的坐地收益的副业问题

    2024-07-12 10:04:04       26 阅读
  4. Milvus Cloud向量数据库:优势解析与深度应用探索

    2024-07-12 10:04:04       21 阅读
  5. MyBatis与数据库交互的四种方法详解

    2024-07-12 10:04:04       18 阅读
  6. uni-app 扫描二维码获取信息功能

    2024-07-12 10:04:04       20 阅读
  7. 设计模式Base

    2024-07-12 10:04:04       21 阅读
  8. 3 进程

    3 进程

    2024-07-12 10:04:04      19 阅读