mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加1382.将二叉搜索树变平衡python3代码
This commit is contained in:
@ -55,7 +55,7 @@ private:
|
|||||||
vec.push_back(cur->val);
|
vec.push_back(cur->val);
|
||||||
traversal(cur->right);
|
traversal(cur->right);
|
||||||
}
|
}
|
||||||
有序数组转平衡二叉树
|
// 有序数组转平衡二叉树
|
||||||
TreeNode* getTree(vector<int>& nums, int left, int right) {
|
TreeNode* getTree(vector<int>& nums, int left, int right) {
|
||||||
if (left > right) return nullptr;
|
if (left > right) return nullptr;
|
||||||
int mid = left + ((right - left) / 2);
|
int mid = left + ((right - left) / 2);
|
||||||
@ -78,7 +78,27 @@ public:
|
|||||||
Java:
|
Java:
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
```python
|
||||||
|
class Solution:
|
||||||
|
def balanceBST(self, root: TreeNode) -> TreeNode:
|
||||||
|
res = []
|
||||||
|
# 有序树转成有序数组
|
||||||
|
def traversal(cur: TreeNode):
|
||||||
|
if not cur: return
|
||||||
|
traversal(cur.left)
|
||||||
|
res.append(cur.val)
|
||||||
|
traversal(cur.right)
|
||||||
|
# 有序数组转成平衡二叉树
|
||||||
|
def getTree(nums: List, left, right):
|
||||||
|
if left > right: return
|
||||||
|
mid = left + (right -left) // 2
|
||||||
|
root = TreeNode(nums[mid])
|
||||||
|
root.left = getTree(nums, left, mid - 1)
|
||||||
|
root.right = getTree(nums, mid + 1, right)
|
||||||
|
return root
|
||||||
|
traversal(root)
|
||||||
|
return getTree(res, 0, len(res) - 1)
|
||||||
|
```
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
|
Reference in New Issue
Block a user