添加1382.将二叉搜索树变平衡java代码

This commit is contained in:
ironartisan
2021-08-12 09:37:26 +08:00
parent db18da9914
commit 2706b07a97

View File

@ -76,7 +76,31 @@ public:
# 其他语言版本
Java
```java
class Solution {
ArrayList <Integer> res = new ArrayList<Integer>();
// 有序树转成有序数组
private void travesal(TreeNode cur) {
if (cur == null) return;
travesal(cur.left);
res.add(cur.val);
travesal(cur.right);
}
// 有序数组转成平衡二叉树
private TreeNode getTree(ArrayList <Integer> nums, int left, int right) {
if (left > right) return null;
int mid = left + (right - left) / 2;
TreeNode root = new TreeNode(nums.get(mid));
root.left = getTree(nums, left, mid - 1);
root.right = getTree(nums, mid + 1, right);
return root;
}
public TreeNode balanceBST(TreeNode root) {
travesal(root);
return getTree(res, 0, res.size() - 1);
}
}
```
Python
```python
class Solution: