增加1382. 将二叉搜索树变平衡 JavaScript版本

This commit is contained in:
jerryfishcode
2021-09-27 18:14:07 +08:00
committed by GitHub
parent 16dcd4cd83
commit a5a088b35f

View File

@ -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,mid1] 作为当前节点的左子树
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)