将二叉搜索树变平衡

1382. 将二叉搜索树变平衡

目录

总结

var balanceBST = function (root) {
    let nums = [];
    function traverse(root) {
        if (!root) return;
        traverse(root.left);
        nums.push(root.val);
        traverse(root.right);
    }
    traverse(root);
    function build(nums, left, right) {
        if (left > right) return null;
        let mid = left + Math.floor((right - left) / 2);
        let root = new TreeNode(nums[mid]);
        root.left = build(nums, left, mid - 1);
        root.right = build(nums, mid + 1, right);
        return root;
    }
    return build(nums, 0, nums.length - 1);
};

题目与思路

616