diff --git a/problems/1382.将二叉搜索树变平衡.md b/problems/1382.将二叉搜索树变平衡.md index bce58c33..8e1cbe37 100644 --- a/problems/1382.将二叉搜索树变平衡.md +++ b/problems/1382.将二叉搜索树变平衡.md @@ -126,6 +126,29 @@ class Solution: Go: JavaScript: +```javascript +var balanceBST = function(root) { + const res = []; + // 中序遍历转成有序数组 + const travesal = cur => { + if(!cur) return; + travesal(cur.left); + res.push(cur.val); + travesal(cur.right); + } + // 有序数组转成平衡二叉树 + const getTree = (nums, left, right) => { + if(left > right) return null; + let mid = left + ((right - left) >> 1); + let root = new TreeNode(nums[mid]);// 中心位置作为当前节点的值 + root.left = getTree(nums, left, mid - 1);// 递归地将区间[left,mid−1] 作为当前节点的左子树 + root.right = getTree(nums, mid + 1, right);// 递归地将区间[mid+1,right] 作为当前节点的左子树 + return root; + } + travesal(root); + return getTree(res, 0, res.length - 1); +}; +``` ----------------------- * 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)