mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-12 21:50:49 +08:00
添加1382.将二叉搜索树变平衡java代码
This commit is contained in:
@ -76,7 +76,31 @@ public:
|
|||||||
# 其他语言版本
|
# 其他语言版本
|
||||||
|
|
||||||
Java:
|
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:
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
|
Reference in New Issue
Block a user