Balance a Binary Search Tree(BST) (Leetcode 1382)
Problem Link: https://leetcode.com/problems/balance-a-binary-search-tree/
class Solution:
def balanceBST(self, root: TreeNode) -> TreeNode:
global arr
arr=[]
def inorder(root):
global arr
if(root is None):
return
inorder(root.left)
arr.append(root.val)
inorder(root.right)
def fun(arr):
if(len(arr)<=0):
return None
elif(len(arr)==1):
return TreeNode(arr[0])
mid=(len(arr)//2)
rootnodeval=arr[mid]
l=fun(arr[:mid])
r=fun(arr[mid+1:])
rootnode=TreeNode(rootnodeval)
rootnode.left=l
rootnode.right=r
return rootnode
inorder(root)
return fun(arr)
Last updated