mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
增加1382. 将二叉搜索树变平衡 JavaScript版本
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user