mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
增加1382. 将二叉搜索树变平衡 JavaScript版本
This commit is contained in:
@ -126,6 +126,29 @@ class Solution:
|
|||||||
Go:
|
Go:
|
||||||
|
|
||||||
JavaScript:
|
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)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
|
Reference in New Issue
Block a user