二叉树part8

二叉树part8

669. 修剪二叉搜索树 - 力扣(LeetCode)

本题难在理解修剪的代码逻辑,我没理解😢

class Solution {
    public TreeNode trimBST(TreeNode root, int low, int high) {
        if(root == null){
            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. 将有序数组转换为二叉搜索树 - 力扣(LeetCode)

迭代不好写,递归好写

本题与二分高度相关,注意分界条件

//左闭右开 
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return traversal(nums, 0, nums.length);
    }

    public TreeNode traversal(int[] nums, int left, int right){
        if(left >= right){
            return null;
        }
        int mid = left + ((right - left) >> 1);
        TreeNode root = new TreeNode(nums[mid]);
        root.left = traversal(nums, left, mid);
        root.right = traversal(nums, mid + 1, right);
        return root;
    }
}
//左闭右闭
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return traversal(nums, 0, nums.length - 1);
    }

    public TreeNode traversal(int[] nums, int left, int right){
        if(left > right){
            return null;
        }
        int mid = left + ((right - left) >> 1);
        TreeNode root = new TreeNode(nums[mid]);
        root.left = traversal(nums, left, mid - 1);
        root.right = traversal(nums, mid + 1, right);
        return root;
    }
}
538. 把二叉搜索树转换为累加树 - 力扣(LeetCode)

注意遍历顺序--中序倒过来--右中左,然后累加数字,很简单

class Solution {

    int sum = 0;

    public TreeNode convertBST(TreeNode root) {
        if(root == null){
            return null;
        }
        root.right = convertBST(root.right);
        sum += root.val;
        root.val = sum;
        root.left = convertBST(root.left);
        return root;
    }
}

感觉没有提到过红黑树啊,是这些题目难度已经囊括了红黑树的难度吗,还是在后面还有提及

总结,每种二叉树的题目都可以用递归来做,这样会很好找思路和总结思路

posted @ 2025-06-13 21:54  泡芙猪  阅读(23)  评论(0)    收藏  举报