mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Merge pull request #1462 from xiaofei-2020/exTree02
添加(1382.将二叉搜索树变平衡.md):增加typescript版本
This commit is contained in:
@ -188,6 +188,30 @@ var balanceBST = function(root) {
|
||||
};
|
||||
```
|
||||
|
||||
TypeScript:
|
||||
|
||||
```typescript
|
||||
function balanceBST(root: TreeNode | null): TreeNode | null {
|
||||
const inorderArr: number[] = [];
|
||||
inorderTraverse(root, inorderArr);
|
||||
return buildTree(inorderArr, 0, inorderArr.length - 1);
|
||||
};
|
||||
function inorderTraverse(node: TreeNode | null, arr: number[]): void {
|
||||
if (node === null) return;
|
||||
inorderTraverse(node.left, arr);
|
||||
arr.push(node.val);
|
||||
inorderTraverse(node.right, arr);
|
||||
}
|
||||
function buildTree(arr: number[], left: number, right: number): TreeNode | null {
|
||||
if (left > right) return null;
|
||||
const mid = (left + right) >> 1;
|
||||
const resNode: TreeNode = new TreeNode(arr[mid]);
|
||||
resNode.left = buildTree(arr, left, mid - 1);
|
||||
resNode.right = buildTree(arr, mid + 1, right);
|
||||
return resNode;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
-----------------------
|
||||
|
Reference in New Issue
Block a user