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