LC 669 · 修剪二叉搜索树思路递归处理比删除节点难在被剪掉的节点的子树可能还有合法节点。当前节点值小于 low不能直接删掉它——它的右子树里可能还有合法节点递归返回trimBST(root.right, low, high)把右子树里合法的部分接上来。同理节点值大于 high 时递归返回左子树的修剪结果。在范围内就正常递归左右子树。直觉上以为要像删除那样大改结构其实递归帮你处理好了——想清楚每种情况该返回什么代码反而很短。LC 108 · 将有序数组转换为二叉搜索树思路每次取中间元素做根左右递归构造。有序数组中序遍历就是它本身反过来构造时每次取中点做根左半段建左子树右半段建右子树天然保证平衡。和前几天的构造题一样前序递归先定根再建子树。数组长度为偶数时中点取左取右都行结果不唯一题目也不要求唯一解。LC 538 · 把二叉搜索树转换为累加树思路反向中序遍历右→根→左 前驱指针累加。累加树要求每个节点的值加上所有比它大的节点的值。BST中序是升序反过来中序就是降序从最大值开始往前累加用pre记录前一个节点的累计和当前节点值加上pre即可。和 530、501 一样的双指针套路换了个遍历方向而已写熟了很顺手。二叉树专题正式收官回头看这一路从基础遍历到递归思维从构造到增删改查从普通二叉树到BST——前序构造、中序处理BST、后序自底向上收信息这三条规律贯穿始终遇到新题先想清楚用哪种遍历大方向就不会错。下一章见继续冲