1
# Definition for a binary tree node.2
# class TreeNode(object):3
# def __init__(self, val=0, left=None, right=None):8
def balanceBST(self, root):14
self.flatTree(root, arr)15
return self.createTree(arr, 0, len(arr))17
def flatTree(self, root, arr):20
self.flatTree(root.left, arr)22
self.flatTree(root.right, arr)24
def createTree(self, arr, start, length):27
root = arr[start + length / 2]28
root.left = self.createTree(arr, start, length / 2)29
root.right = self.createTree(30
arr, start + length / 2 + 1, length - length / 2 - 1