代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树

代码随想录算法训练营

代码随想录算法训练营43期 | Day

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

c++ 复制代码
class Solution {
private:
    TreeNode* traversal(vector<int>& nums, int left, int right) {
        if (left > right) return nullptr;
        int mid = left + ((right - left) / 2);
        TreeNode* root = new TreeNode(nums[mid]);
        root->left = traversal(nums, left, mid - 1);
        root->right = traversal(nums, mid + 1, right);
        return root;
    }
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        TreeNode* root = traversal(nums, 0, nums.size() - 1);
        return root;
    }
};

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

c++ 复制代码
class Solution {
public:
    int pre = 0;
    void traversal(TreeNode* cur)
    {
        // 终止条件
        if(cur==nullptr) return;
        //右
        traversal(cur->right);
        cur->val += pre;
        pre = cur->val;
        traversal(cur->left);
    }

    TreeNode* convertBST(TreeNode* root) {
        pre = 0;
        traversal(root);
        return root;
    }
};
相关推荐
IronMurphy几秒前
【算法三十四】39. 组合总和
算法·深度优先
重庆小透明几秒前
力扣刷题【3】相交链表
算法·leetcode·链表
算法鑫探几秒前
C语言实战:学生成绩统计与分析
c语言·数据结构·算法·新人首发
IAUTOMOBILE3 分钟前
Code Marathon 项目源码解析与技术实践
java·前端·算法
Lyyaoo.3 分钟前
【JAVA基础面经】深拷贝与浅拷贝
java·开发语言·算法
x_xbx27 分钟前
LeetCode:202. 快乐数
算法·leetcode·职场和发展
老虎062742 分钟前
LeetCode热题100 刷题笔记(第四天)二分 「 寻找两个正序数组的中位数」
笔记·算法·leetcode
_日拱一卒43 分钟前
LeetCode:最小覆盖字串
java·数据结构·算法·leetcode·职场和发展
小O的算法实验室43 分钟前
2026年IEEE TEVC,面向农业多机器人任务分配的自适应多目标任务划分算法,深度解析+性能实测
算法·机器人·论文复现·智能算法·智能算法改进
Ujimatsu1 小时前
数据分析相关面试题-A/B 测试 & 统计学部分
算法·机器学习·数据分析