LeetCode 1382. [Python] Balance a Binary Search Tree [Facebook]
原题链接
中等
作者:
徐辰潇
,
2021-02-03 11:51:49
,
所有人可见
,
阅读 339
class Solution:
def balanceBST(self, root: TreeNode) -> TreeNode:
List = []
def dfs(root):
if not root:
return
dfs(root.left)
List.append(root.val)
dfs(root.right)
dfs(root)
n = len(List)
dfs(root)
rootidx = List[n//2]
def ConstructTree(lower, upper):
if lower > upper:
return
rootidx = (lower + upper) // 2
Node = TreeNode(List[rootidx])
Node.left = ConstructTree(lower, rootidx-1)
Node.right = ConstructTree(rootidx+1, upper)
return Node
return ConstructTree(0, n-1)