代码随想录打卡第21天 | 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树
669. 修剪二叉搜索树 链接:669. 修剪二叉搜索树 文章:代码随想录 视频:B站讲解 状态:❌ 第一想法 在小于low的节点,节点和左树全部抛掉,返回右树(如果右树不存在一样返回); 大于high的节点,节点和右树全部抛掉,返回左树(如果左树不存在一样返回); 看完题解后的想法 要学会运用返回节点简化操作,这题和LC450类似,都是用返回节点简化了左右判断,因为BST自带左右; 实现中遇到的困难 – 代码 class Solution { public: TreeNode* trimBST(TreeNode* root, int low, int high) { if (!root) 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; } }; 108. 将有序数组转换为二叉搜索树 链接:108. 将有序数组转换为二叉搜索树 文章:代码随想录 视频:B站讲解 状态:✅ 第一想法 不断取中点构造二叉树; ...